רוצה להיות מתכנת
New member
לא מבין למה מתקבל פלט מסוים
לגבי הקוד הבא:
מדוע מתקבל הפלט הבא:
לגבי הקוד הבא:
קוד:
class Person
{
char name[10];
public:
Person(const char* name) {setName(name);}
Person(const Person& other)
{
cout << "In Person(copy) " << other.name << "\n";
*this = other;
}
~Person() { cout << "In Peron::~Person " << name << "\n"; }
void setName(const char* name) {strcpy(this->name, name);}
};
void main()
{
vector<Person> persons;
vector<Person*> personsPtr;
Person p1("gogo"), p2("momo");
persons.push_back(p1);
persons.push_back(p2);
personsPtr.push_back(&p1);
personsPtr.push_back(&p2);
p1.setName("gogogo");
}
מדוע מתקבל הפלט הבא:
קוד:
In Person(copy) gogo
In Person(copy) gogo
In Peron::~Person gogo
In Person(copy) momo
In Peron::~Person momo
In Peron::~Person gogogo
In Peron::~Person gogo
In Peron::~Person momo