利用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;
}