以下代码调用析构函数 4 次:
#include<iostream>
using namespace std;
class A{
public:
A(){cout<<"A"<<endl;}
~A(){cout<<"~A"<<endl;}
A f(){cout<<"F"<<endl; A b; return b;}
};
int main(){
A a,b;
b=a.f();
}
输出:
A
A
F
A
~A
~A
~A
~A
有人可以解释一下吗?我在想应该只有三个析构函数调用。