Автор |
Сообщение |
Snake!
Репутация: 0
Сообщения: 1941
Стаж: 3 года 4 месяца
|
16.01.2006 22:43 Инициализация массива констант |
|
|
Есть такой код:
Код:
class A{
private:
const int array[10];
public:
A();
~A();
};
Как проинициализировать такой массив?
выражение: Код: int const A::array[10]={1,2,3,4,5,6,7,8,9,10}; не работает.
Изучение форума rsdn пока ни к чему не привело.
|
|
Вернуться к началу |
|
|
Blackmore
Репутация: 0
Сообщения: 1334
Стаж: 3 года 4 месяца
|
17.01.2006 0:25 |
|
|
Это ты в каком месте пытаешься сделать?
private:
const int array[10]=new int[]{1,2,3,4,5,6,7,8,9,10};
или
private:
const int array[]{1,2,3,4,5,6,7,8,9,10};
думаю, что-то из этого должно работать (:
_________________ she turns and says "are you alright?"
I said "I must be fine cause my heart's still beating"
|
|
Вернуться к началу |
|
|
Snake!
Репутация: 0
Сообщения: 1941
Стаж: 3 года 4 месяца
|
17.01.2006 0:46 |
|
|
Blackmore
Думаешь я это не пробовал?
Вообще желательно через инициализирующий конструктор.
|
|
Вернуться к началу |
|
|
Blackmore
Репутация: 0
Сообщения: 1334
Стаж: 3 года 4 месяца
|
17.01.2006 0:59 |
|
|
а что компилер говорит? вообще константы обычно сразу инициализируют, а если оч.хочется в конструкторе, то не делать массив константным ((:
_________________ she turns and says "are you alright?"
I said "I must be fine cause my heart's still beating"
|
|
Вернуться к началу |
|
|
Snake!
Репутация: 0
Сообщения: 1941
Стаж: 3 года 4 месяца
|
17.01.2006 1:03 |
|
|
Компилятор вот что говорит:
error C2143: syntax error : missing ';' before '{'
error C2258: illegal pure syntax, must be '= 0'
pure specifier can only be specified for functions
error C2059: syntax error : '{'
error C2334: unexpected token(s) preceding '{'; skipping apparent function body
Это на кусок: Код: const int array[10]=new int[]{1,2,3,4,5,6,7,8,9,10};
Ну ведь можно инициализировать не массив:
Код:
...
const int a;
...
A(int x):a(x){};
...
|
|
Вернуться к началу |
|
|
|
|