#include <iostream>
#include <cstdio>
using namespace std;
class T{
public:
T()
{
cout << "constuct" << endl;
}
~T()
{
cout << "destroy" << endl;
}
};
T fun()
{
static T t;
return t;
}
int main()
{
T t = fun();
int mark;
cin >> mark;
cout << mark << endl;
return 0;
}结果是(不用因只有一个construct,有两个destroy感到奇怪,因为T t = fun()调用了默认复制构造函数):
constuct
1
1
destroy
destroy
而不是:
constuct
destroy
1
1
destroy
本文通过一个简单的C++程序实例,探讨了静态成员变量在类中使用时的行为特性,特别是当该类的对象作为函数返回值时,其构造和析构过程的具体表现。通过对程序运行结果的分析,揭示了静态成员变量生命周期的独特之处。
871

被折叠的 条评论
为什么被折叠?



