gpt4 book ai didi

c++,析构函数有问题

转载 作者:搜寻专家 更新时间:2023-10-30 23:59:24 25 4
gpt4 key购买 nike

我有这样的代码:

#include <iostream>

using namespace std;

class X
{
int a;
public:
X()
{
cout<<"X constructor was called"<<endl;
}
X(int n)
{
cout<<"X(int) constructor was called"<<endl;
}
~X(){cout<<"X dectructor was called"<<endl;}
};
int main()
{
X x(3);

system("PAUSE");

return 0;
}

这段代码执行的结果是:X(int) constructor was called 。但是为什么没有打印析构消息呢?

据我所知,我们通过调用构造函数 X(int) 创建对象 x,在程序结束时必须删除该对象,但事实并非如此。

最佳答案

因为是在栈上分配的,所以应该在这里调用析构函数:

int main()
{
X x(3);

system("PAUSE");

return 0;
} // X destructor (x go out of context)

关于c++,析构函数有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16590885/

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