테스트 해 본 결과, 볼랜드C++컴파일러와 MingGW컴파일러에서는 a객체와 c객체의 소멸자가 정상적으로 호출됩니다.
그런데 비주얼C++ 컴파일러에서는 소멸자가 정상적으로 호출되지 않더군요.
혹시나 해서 다음 두줄을
#include <iostream>
using namespace std;
다음과 같이 바꾸고 하면 어떻게 될까 테스트 해 본 결과
#include <iostream.h>
정상적으로 소멸자가 호출 되더군요.
유추해본 결과,
비주얼 C++에서는
using namespace std 문장을 사용했을경우 전역객체가 소멸되기 전에 using의 효력?이 끝나버리면서 cout, endl 객체를 사용할 수 없게 되버리는게 아닐까 하고 생각이 드네요..
제가 네임스페이스에 대해 정확히 알고있지 않아서 정확히는 답변드리지 못하겠네요..
에구구, 씨뿔뿔 다시 공부해야겠다..
|