|
안녕하세요.
아래코드는 생성자와 소멸자가 호출되는 시점을 확인하는 코드입니다.
코드도 어렵지 않고 각각의 호출시점도 쉽게 이해가 됩니다.
하지만, Borland 컴파일러와 VC++ 컴파일러에 따라 결과가 약간 달라지네요.
Bcc 일경우 이상없이 출력됩니다만
VC++ 에서는 전역으로 객체를 생성한 부분(a 와 c 객체)은
종료시점에서 소멸자가 호출되지 않는것 같습니다.
혹시 아시는분 설명 좀 부탁드리겠습니다.
===================================================
#include <iostream>
using namespace std;
class Ctest
{
private:
char ch;
public:
Ctest(char ct) : ch(ct)
{
cout << "생성자---" << ch << endl;
}
~Ctest()
{
cout << "소멸자---" << ch << endl;
}
};
Ctest a('a');
void B();
Ctest c('c');
int main()
{
Ctest d('d');
{
Ctest e('e');
}
B();
Ctest f('f');
return 0;
}
void B()
{
Ctest b('b');
}
|