class TestBContX{ public:
int d[4];
TestBContX() : d(1, 2, 3, 4) { }
};
1. Не работает.
2. А должно ли работать? [ну, я пробовал и другие варианты, но они тоже не работали.]
Мне нужно создать список элементов и хранить его в классе. type d[]={1, 2, 3}; самый лучший вариант, который сам выберет размер и вставит элементы в массив.
Хм, думаю можно решить мою проблему через:
class TestBContX{ public:
int d[4];
TestBContX(){ int a[]={1, 2, 3, 4}; memcpy(d, a, sizeof(a)); }
};
Но может быть все же есть вариант с инициализацией в конструкторе?
Римское правило. Тот, кто говорит, что Это не может быть сделано, никогда не должен мешать тому, кто Это делает.
Осень, ну вы поняли.
Зачем еще один код? А человек?
Здравствуйте, MikelSV, Вы писали:
MSV>Хочу инициализировать массив в конструкторе.
Не получится.
MSV>1. Не работает.
И не будет.
MSV>2. А должно ли работать? [ну, я пробовал и другие варианты, но они тоже не работали.]
Наверное, должно — это было бы мило со стороны компилятора. Но работать не будет.
MSV>Мне нужно создать список элементов и хранить его в классе. type d[]={1, 2, 3}; самый лучший вариант, который сам выберет размер и вставит элементы в массив.
А зачем тебе массив, если ты хочешь списка? Используй std::list или std::deque.
MSV>Хм, думаю можно решить мою проблему через:
Это решение корявое. Есть вот такое, но тоже не особо:
Эм, знаете, я не люблю std, поэтому не знаю, как добрыми словами спросить, зачем тут vector? ой, от list производительность сгорит в агонии.
Я хочу именно массив. Определенной длинны с определенными данными, которые будут шустро использоваться. А эти извращения нужны по причине того, что таких классов может быть много и с разным количеством элементов в массиве, иначе проще вбить руками.
Римское правило. Тот, кто говорит, что Это не может быть сделано, никогда не должен мешать тому, кто Это делает.
Осень, ну вы поняли.
Зачем еще один код? А человек?
MSV>Эм, знаете, я не люблю std,
Печально. Я полагаю, что ты умеешь его готовить.
MSV>поэтому не знаю, как добрыми словами спросить, зачем тут vector?
Затем, что вектор, как правило, удобнее встроенного массива.
MSV>ой, от list производительность сгорит в агонии.
Зависит от сценария использования, мне он не известен.
MSV>Я хочу именно массив. Определенной длинны с определенными данными, которые будут шустро использоваться.
Вектор удовлетворяет этим требованиям.
А синтаксис для инициализации массива в конструкторе в С++ отсутствует.
Я верю, что вектор это хорошо, но моя параноя советует не использовать экскаватор для рытья маленькой ямки под цветочки. На тему логичности и простоты она вообще молчит. И прозрачности кода тоже.
Подключение stl к программе это событие, как праздник. Не хочу себя так радовать.
Римское правило. Тот, кто говорит, что Это не может быть сделано, никогда не должен мешать тому, кто Это делает.
Осень, ну вы поняли.
Зачем еще один код? А человек?
Здравствуйте, MikelSV, Вы писали:
MSV>Хочу инициализировать массив в конструкторе. MSV>Но может быть все же есть вариант с инициализацией в конструкторе?
В списке инициализации конструктора прокатывает только инициализация нулем. Все другие выиды инициализации — только в теле конструктора.
Если значения массива одинаковы для всех объектов, и массив небольшой, то можно его сделать статическим и проинициализировать явно прит определении.
Иначе делайте конструктор инициализации.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
MSV>Подключение stl к программе это событие, как праздник. Не хочу себя так радовать.
Я так понимаю, что C++0x и списки инициализации как тип в std это еще больший праздник, и советовать не стоит?
Здравствуйте, Murom, Вы писали:
M>Здравствуйте, barmafon, Вы писали:
B>>Здравствуйте, MikelSV, Вы писали:
B>>Например, как-нибудь так:
B>>[ccode] B>>#include <boost/array.hpp>
M>Для человка stl уже много, а буст его просто порвет.
Здравствуйте, Vamp, Вы писали:
MSV>>Эм, знаете, я не люблю std, V>Печально. Я полагаю, что ты умеешь его готовить.
Это что за кухня то такая? советовать вместо массива std::vector, даже не поинтерисовавшись зачем ему нужен массив.
MSV>>поэтому не знаю, как добрыми словами спросить, зачем тут vector? V>Затем, что вектор, как правило, удобнее встроенного массива.
Удобней для чего?
у меня
class Vector3
{
float v[3];
}
мне будет удобней использовать std::vector<float>?
MSV>>Я хочу именно массив. Определенной длинны с определенными данными, которые будут шустро использоваться. V>Вектор удовлетворяет этим требованиям.
Нет.