所以这是代码:
#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)