Привет всем!!!
Вот такой код в VC6 билдится да еще и без ошибок RT выполняется:
#include <iostream.h>
class C1 {
public:
C1() {};
void F1() { cout << "C1.F1()\n"; };
~C1() { cout << "~C1()\n"; };
};
class C2 {
public:
C1 c1;
C2() {};
~C2() {};
};
void NullC1(C2& c2)
{
C1 c1;
c2.c1 = c1;
};
int main(void) {
C2 c2;
c2.c1.~C1(); <-------------------+
NullC1(c2); +
c2.c1.F1(); +
return 0; +
}; +
+
и выдает такое: +
~C1() // c этим вроде все понятно --+
~C1() // и с этим вроде тоже (вызывается компилом при выходе из NullC1() )
C1.F1() // по моему бред какойто, ведь с1 уже нет, выходит что конструктор и деструктор это простые
// процедуры или я что-то непонимаю???
~C1() // тоже самое
_____________________
Заранее благодарен за ответ....