Re[2]: Помогите разобраться
От: -newbie-  
Дата: 20.08.03 06:45
Оценка:
Здравствуйте, DanilB, Вы писали:

DB>Попробуй в деструкторе

DB>~A(){if(X) {delete X; X = NULL;} }

Ну это не поможет.
Как я понял из выше сказанного, в "return temp" передаётся не сам temp а его копия.
И т.к. компилятор "не знает" как копировать память на которую ссылается *X, то нужно определить контсруктор копирования A(const A &a), где а — объект который копируется.

Так что, деструктор вызывается по одному разу для двух разных объектов. Один раз для temp в строке "return temp". И второй раз для его копии в aaa.NewA(77);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.