利用auto_ptr统计C++的对象个数,要注意一定要把构造函数声明为私有,代码如下:
class A{
private:
static int i;
A(){
}
A(const A&){}
public:
static void init(){
A::i=0;
}
auto_ptr<A> static makeA(){
i++;
auto_ptr<A> p(new A);
return p;
}
static int getNum(){
return A::i;
}
};
int A::i=0;
int main(){
for(int i=0;i<10;i++){
auto_ptr<A> p=A::makeA();
}
cout<<A::getNum()<<endl;
}
private:
static int i;
A(){
}
A(const A&){}
public:
static void init(){
A::i=0;
}
auto_ptr<A> static makeA(){
i++;
auto_ptr<A> p(new A);
return p;
}
static int getNum(){
return A::i;
}
};
int A::i=0;
int main(){
for(int i=0;i<10;i++){
auto_ptr<A> p=A::makeA();
}
cout<<A::getNum()<<endl;
}