#include<iostream>
using namespace std;
class A{
public:
A(){
count++;
}
static int count;
~A(){
count--;
print();
}
void print(){
cout<<"cout = " <<count<<endl;
}
};
int A::count = 0;
A f(A tmp){
tmp.print();
return tmp;
}
int main(){
A a1;
a1.print();
A a2 = f(a1);
a2.print();
return 0;
}
f调用完就析构,所以count中间的时候就会减一
输出结果 :
cout = 1
cout = 1
cout = 0
cout = 0
cout = -1
cout = -2