输入:
#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次。
a, lol, b
。你预计会有多少次析构函数调用?如果你实现了“拷贝构造函数”,你将会看到其中一个对象被复制了。 - billzlol
构造函数没有被调用。 - Mathew Kurianlol
的副本。 - Jonathon Reinhart