以下代码调用析构函数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();
}
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
A
A
F
A
~A
~A
~A
~A
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下吗?我原以为应该只有三个析构函数调用.