#include <iostream>
using namespace std;
class A
{
public:
A(){cout<<"A构造函数"<<endl;}
~A(){cout<<"A析构函数"<<endl;}
void get(int x){suv=x;cout<<x<<endl;}
private:
int suv;
};
A fuc(A b);
int main()
{
A c;
fuc(c);
return 0;
}
A fuc(A b)
{
b.get(34);
return b;
}
此程序返回执行结果: A构造函数 34 A析构函数 A析构函数 A析构函数
A c在main结束时会析构一次 fuc(c);这里c是值传递给形参b,相当于生成了一个A类的临时变量,这个临时变量要析构一次。 fuc函数里的return b;也是生成了一个和b值相同的A类拷贝,这个拷贝也要析构一次。