c++构造函数、析构函数、静态成员变量

#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

猜你喜欢

转载自blog.csdn.net/qq_24624539/article/details/108476911