В C ++, с кодом Visual Studio,
я сделал класс Person.Я сделал vector <Person*> phonebook
.Я создал объект Person newperson
и поместил его в свой вектор phonebook
И я хочу получить доступ к newperson.print()
.Поэтому я написал phonebook[i]->print
, но он показывает ошибку во время выполнения.
Я подумал, что это проблема конструктора копирования, но после того, как я его добавил, это было то же самое.И я также попытался отделиться, создав новый фиктивный объект, но он тоже не работает.Как я могу получить доступ к методу объекта через указатель объекта, хранящийся в векторе?
Person(const Person &oldperson)
{
firstname = oldperson.firstname;
lastname = oldperson.lastname;
phonenumber = oldperson.phonenumber;
}
//This is my copy constructor,
void PrintAll()
{
for(int i = 0; i < phonebook.size(); i++)
{
cout << "Hello " << i << endl;//it runs
Person personprinter = Person(*phonebook[i]);
cout << "Hello 2" << endl;//it does not run
personprinter.Print();
}
}
//This is my method where I will call object's method.
Ожидается: .Print()
выполняется.
Факт: Person personprinter = Person(*phonebook[i]);
не выполняется.