#include<iostream.h>
#include<string.h>
class sample
{
int x;
public:
sample(int a)
{
x=a;
cout<<"constructing object:x="<<x<<endl;
}
};
void func(int n)
{
static sample obj(n);
}
void main()
{
func(1);
func(10);
}
结果
x=1
为什么啊 求大大解答~~
#include<iostream.h>
#include<string.h>
class sample
{
int x;
public:
sample(int a)
{
x=a;
cout<<"constructing object:x="<<x<<endl;
}
};
void func(int n)
{
static sample obj(n);
}
void main()
{
func(1);
func(10);
}
结果
x=1
为什么啊 求大大解答~~
static sample obj(n);
表示obj是函数内的静态变量,该变量只会在第一次进入函数时候初始化,你去掉static就会出现1和10了