gpt4 book ai didi

c++ - 为什么析构函数被调用了三次?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:49:39 34 4
gpt4 key购买 nike

输入:

#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 次,分别是 alolb
在您的例子中,ab 是使用 默认构造函数 实例化的。但是请注意,lol 是使用 copy constructor

实例化的

关于c++ - 为什么析构函数被调用了三次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19922052/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com