小编Dav*_*lfe的帖子

程序何时不在c ++中调用析构函数?

所以这是代码:

#include <iostream>

using namespace std;

class C {
public:
    C() {i = 6; cout << "A:" << i << endl;}

    C(int i0) {i = i0; cout << "B:" << i << endl;}

    ~C() {cout << "C:" << i << endl;}
private:
    int i;
};

int main(int argc, char* argv[]) {
    cout << "X" << endl;
    C *c = new C;
    cout << "Y" << endl;
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,该代码的输出是

X
A:6
Y
Run Code Online (Sandbox Code Playgroud)

由于某种原因,一旦到达代码末尾就不会调用析构函数(C:6).这是为什么?此代码也调用析构函数:

#include <iostream>

using namespace std;

class C { …
Run Code Online (Sandbox Code Playgroud)

c++ destructor

2
推荐指数
2
解决办法
526
查看次数

标签 统计

c++ ×1

destructor ×1