C++ static 静态类对象构造

class QE
{
public:
QE(int x)
{
cout<<"coustruct x="<<x<<endl;
}
void print(int n)
{
printf("print:%d\n",n);
}
};
void fun(int n)
{
static QE obje(n);
obje.print(n);

}


int _tmain(int argc, _TCHAR* argv[])

fun(1);
fun(10);

输出结果:

coustruct x=1
print:1
print:10

static QE obje只在fun(1)调研时构造一次,fun(10)没有调用构造是因为obje对象在程序全局内存里已经存在,并已经构造完成,直接使用同名obje对象就可以了;

你可能感兴趣的:(C++,static,静态类对象构造)