CArray + Template
От: fin Россия http://limits.ru
Дата: 22.09.03 04:31
Оценка:
Имеется класс:
MyClass::MyClass()
{
    printf("MyClass::MyClass()\n");
}

MyClass::~MyClass()
{
    printf("MyClass::~MyClass()\n");
}

MyClass::MyClass(const MyClass &obj)
{
    printf("MyClass::MyClass(const MyClass &obj)\n");

    sName = obj.sName;
}

MyClass MyClass::operator =(const MyClass &obj)
{
    printf("MyClass MyClass::operator =(const MyClass &obj)\n");

    sName = obj.sName;
    return *this;
}


Код в главной функции
CArray <MyClass,MyClass&> arrayMyClasses;
cout << "1" << endl;
MyClass obj;
cout << "2" << endl;
obj.sName = "Name";
cout << "3" << endl;
arrayMyClasses.Add(obj);
cout << "4" << endl;


И вот такой странный результат на консоли:
1
MyClass::MyClass()
2
3
MyClass::MyClass()
MyClass MyClass::operator =(const MyClass &obj)
MyClass::MyClass(const MyClass &obj)
MyClass::~MyClass()
4
MyClass::~MyClass()
MyClass::~MyClass()


Почему деструктор вызывается трижды?
Егор Кабанов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.