|
|
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
Сорри, если баян. В классе есть Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 13:08 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
ЛюкСкайУокерСорри, если баян. В классе есть Код: plaintext 1. Статиком возможно задать? И вообще, ты что хочешь сдалать? указатель на массив чаров? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 13:20 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
Я думаю что так: Constructor(...) : Array(ptr) { ... } По другому никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 13:29 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
ЛюкСкайУокер пишет: > const char * const Array[ARRAY_SIZE]; > > Как его инициализировать? Раз константное поле, значит список > инициализации, но массивы он не хавает. Тогда как? В конструкторе, в списке инициализации. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 13:47 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
blinded, MasterZiv: интересные у вас ответы. :) Автор написал, что у него так не получается, а вы ему говорите, "делай, мол, получится". Имхо, раз у него не получается, товарищ хочет: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 13:55 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
А что за проблема? Мы указатель в конструктор передать не могем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 14:04 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
blindedА что за проблема? Мы указатель в конструктор передать не могем? Он хочет массив схавать. По логике вещей, он хочет инициализировать массив указателей. Я так понял из: ЛюкСкайУокер ... Как его инициализировать? Раз константное поле, значит список инициализации, но массивы он не хавает. Тогда как? Т.е. он ошибся в определении типа переменной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 14:09 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
Ничего не понимаю, хотел проинициализировать константный указатель на константную строку - получите, какие массивы. Пусть сам появится и даст кусок кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 14:15 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
Так, что-то разьрос понятий:) const char * const Array[ARRAY_SIZE]; - это массив константных указателей на константные строки (хотя мог быть и любой другой тип, не char). Ну пусть так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 1. Перечислить в круглых скобках строки мы не можем (синтаксис не позволяет это). 2. В списке инициализации перечислять Array[0] ("Text0"), Array[1]("Text1") - тоже синтаксически нельзя... Подбросить в скобках другой аналогичный массив, только не-const? Громозко, да и где его взять. Да, если оформить static-ом будет проще, интересно понять: неужели С++ не позволяет объявить в классе массив константных указателей?! (ясно, что убрав const перед Array в объявлении, проблема решится легко. Ну а если не убирать!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 14:54 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
Странное желание. А ежеди так попробовать? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 15:11 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
Почему всем это кажется странным желанием? :) Неужели не может возникнуть потребность в массиве строк, который не должен модифицироваться? А насчет последнего предложенного способа... компилится? студии под рукой нет просто.. Наверно и так можно, но странно, что нет прямого способа, без вспомогательного массива. Если мы в namespace его объявили, то в составе класса аналогичный ему в принципе-то уже не нужен:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 15:25 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
ЛюкСкайУокерТак, что-то разьрос понятий:) const char * const Array[ARRAY_SIZE]; - это массив константных указателей на константные строки (хотя мог быть и любой другой тип, не char). имхо, это константный указатель на константный массив из элементов char. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 15:26 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
А если это решить через оболочку? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 15:36 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
Akh пишет: > const char * const Array[ARRAY_SIZE]; - это массив константных > указателей на константные строки (хотя мог быть и любой другой тип, не > char). > имхо, это константный указатель на константный массив из элементов char. Не, именно так, как написал blinded. Можно еще его в конструкторе поэлементно присвоить. В теле. На самом деле не понятно, зачем константный нестатический массив в экземпляре объекта класса. И зачем по значению. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 15:39 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
MasterZiv Akh пишет: > const char * const Array[ARRAY_SIZE]; - это массив константных > указателей на константные строки (хотя мог быть и любой другой тип, не > char). > имхо, это константный указатель на константный массив из элементов char. Не, именно так, как написал blinded. Можно еще его в конструкторе поэлементно присвоить. В теле. На самом деле не понятно, зачем константный нестатический массив в экземпляре объекта класса. И зачем по значению. Posted via ActualForum NNTP Server 1.4 1. Согласен. Специально проверил. [] приоритетней 2. Нельзя. Указатели константны. 3. Возможно от объекта к объекту данные должны различаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 16:01 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
ЛюкСкайУокерПочему всем это кажется странным желанием? :) Неужели не может возникнуть потребность в массиве строк, который не должен модифицироваться? .......................... Я считаю что потребность в таком массиве возникнуть не может. Не понимаю зачем может понадобиться копия неизменяемого массива для каждого объекта класса? Массив надо просто сделать статическим членом класса и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 17:22 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
да, косяк, студия прямо говорит: «не могу явно инициализировать массивы» ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 17:38 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
Sandro_KНе понимаю зачем может понадобиться копия неизменяемого массива для каждого объекта класса? Массив надо просто сделать статическим членом класса и все.почему копия? Просто неизменяемый массив. Неизменяемым его делают очевидно затем, чтобы его далее нельзя было изменить. Статик не подходит ежу сказали, почему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 17:40 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
Akh пишет: > 3. Возможно от объекта к объекту данные должны различаться. А вот это верно - не подумал. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 17:42 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
maXmo пишет: > почему копия? Просто неизменяемый массив. Неизменяемым его делают > очевидно затем, чтобы его далее нельзя было изменить. Статик не подходит > ежу сказали, почему. Но вообще согласен. Можно в объектах сделать ссылки, и их ссылать на что-то статическое. Которое уже инициализировать. А вообще, может автор топика поделится, зачем ему такое нужно ? В чем реальная потребность ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 17:44 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
странно, сделал так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 18:04 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
Ни хрена мы не знаем. Вот g++ четко сказал ISO C++ forbids assigment of array Так что нечего выеживаться, надо делать на все const char* const* Array; не не совсем эквивалентно, зато инициализируется без проблем Хошь так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 18:52 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
Со втроенными массивами эта штука не выйдет, а вот написать что-то, что вело бы себя как втроенные массивы можно: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 20:43 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
ЛюкСкайУокерСорри, если баян. В классе есть Код: plaintext 1. Никак. М. Эллис, Б. Строуструп "Справочное руководство по языку программирования С++ с комментариями", Москва "МИР" 1992, стр. 289, цитата: "Нет, ..., синтаксиса для инициализации члена, являющегося нестатическим константным массивом." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2007, 05:29 |
|
||
|
Вопрос синтаксиса
|
|||
|---|---|---|---|
|
#18+
Если честно, в моем случае потребности в не-static нет (класс все равно singleton:)) Стало интересно, не ожидал что С++ не поддерживает такой синтаксис. Наверно если понадобится в каждом экземпляре свой массив указателей, который не должен модифицироваться, то проще наваять класс массива и агрегировать указатель на константный объект этого класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2007, 07:23 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34490720&tid=2028454]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
173ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 270ms |
| total: | 524ms |

| 0 / 0 |
