题目
#include <iostream>
using namespace std;
class A {
public:
int i;
A(int x) { i = x; }
// 在此处补充你的代码
};
int main()
{
A a(1);
A * pa = new A(2);
delete pa;
return 0;
}
输入
无
输出
2
1
答案
~A(){
cout<<i<<endl;
}
解析
出现奇怪输出的原因是调用了析构函数。
析构函数会在调用delete 或者 数据摧毁时调用。所以题目中delete调用了一次,在文件结束main函数时,释放了a,又调用了一次。
endl标识符用于换行。