У меня есть проблема с созданием и добавление объектов в массив Это мой базовый класс:Создание и добавление объекта из базового класса производного класса массива
class CPerson
{
std::string first_name;
std::string last_name;
int birth_year;
char sex;
public:
CPerson();
CPerson(std::string, std::string,int,char);
с некоторыми дополнительными сеттеров и добытчиками. Тогда у меня есть это производный класс:
class CData :
public CPerson
{
int nrOfPersons;
CPerson *Data_array;
public:
CData(int);
~CData();
};
В конструкторе я хочу, чтобы заполнить Data_array с объектами человека, и я следующее:
CData::CData(int x) : nrOfPersons(x)
{
for (int i = 0; i < nrOfPersons; i++)
Data_array[i] = CPerson();
}
Но он выходит из строя на полпути. Я сделал default CPerson()
constructor до cout
сообщение "Inserted" everytime I use it. Поэтому, если я позвоню в главный CData database(4)
, он должен напечатать «Inserted» 4 раза на экране. Вместо этого он печатает только 2 раза, а затем сбой.
где вы выделить память для 'Data_array'? –
CData не должны наследоваться от CPerson. Список людей - это не человек. – Mat