一个关于 iostream 的问题, 请 C++ 专家们给我会诊!
在我说明问题之前,请看程序:
#include <stdio.h>
#include <iostream>
using namespace std;
class clsTest
{
private:
char szTag;
public:
clsTest(char Tag):szTag(Tag)
{
cout << "class clsTest by Tag:" << szTag << " Constructor call" << endl;
};
~clsTest()
{
//printf("class clsTest by tag: %c Destructor call\n",szTag);
cout << "class clsTest by Tag:" << szTag << " Destructor call" << endl;
};
};
static clsTest a('A');
int main(int argc, char* argv[])
{
cout <<"inside main" << endl;
cout <<"leaving main" << endl;
return 0;
}
我认为输出结果是:
class clsTest by Tag:A Constructor call
inside main
leaving main
class clsTest by Tag:A Destructor call
但实际的输出是:
class clsTest by Tag:A Constructor call
inside main
leaving main
但如果将 clsTest 的析构函数的 cout 用法该为 printf ,就能得到我想要的结果,请问问题出在哪里?如果我在析构函数中仍然想用 cout 应如何解决。