输入:
#include <iostream>
using namespace std;
class SimpleClass
{
public:
SimpleClass()
{
cout<<"SimpleClass Constructor\n";
}
virtual ~SimpleClass()
{
cout<<"SimpleClass destructor\n";
}
};
int main()
{
SimpleClass a;
SimpleClass lol = a;
SimpleClass b;
SimpleClass * lol2 = &b;
}
输出:
SimpleClass Constructor
SimpleClass Constructor
SimpleClass destructor
SimpleClass destructor
SimpleClass destructor
我很困惑为什么析构函数被调用了 3 次。
构造函数只被调用了两次!!!
最佳答案
析构函数被调用了 3 次,分别是 a
、lol
和 b
。
在您的例子中,a
和 b
是使用 默认构造函数
实例化的。但是请注意,lol
是使用 copy constructor
关于c++ - 为什么析构函数被调用了三次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19922052/