ОА
Оксана Абдулова

Как создать динамический массив объектов класса с параметризированым конструктором? Аргумент конструктора: ifstream&

Пишу так:
ifstream f("data.txt", ios::_Nocreate);

Employee *company = new Employee(f)[amount]; //f - поток//Ругается мол не может превести типы

Шапка конструктора:

Employee::Employee(ifstream& obj);

Дмитрий Пивоваров
Дмитрий Пивоваров

Есть такая штука - in-place конструктроы. Если интересно, погуглите. С ними делается так: можно через operator new[] выделить память, а потом по месту каждый объект сконструировать. Только не путайте operator new[] и просто new[], первый только память выделяет, а второй еще и дополнительно конструкторы дергает.

А вообще, используйте std::vector, это правильнее. Он для базового типа просит только конструктор копирования (это если о конструкторе движения не думать) . Зачем писать свой динамический массив, если давно уже это за Вас грамотно сделали

Юлия
Юлия

Если нет конструктора по умолчанию, то придется делать массив указателей, инициализировать их в цикле через new, а потом удалять вручную (можно вместо удаления использовать shared_ptr).

Похожие вопросы
динамический массив, delphi
Как задать динамический массив в языке C#
Тип указателя динамический массив FreePascal
Инициализация объектов класса в конструкторе и в специальном методе класса? В чем разница?
Создать динамический массив записей, содержащих данные о лицах: ФИО, пол и возраст...
Как создать массив объектов в PHP?
c++ динамический массив
Как с помощью записать динамический массив
Как добавлять объект динамически?
Как создают конструкторы сайтов?