北大程序设计与算法(三)测验题汇总(2020春季)
描述
程序填空,输出指定结果
#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
样例输入
无
样例输出
2
1
来源
Guo Wei
分析
我们发现1和2的输出顺序是相反的,那么很容易联想到析构函数的调用与构造函数的调用顺序相反。
#include <iostream>
using namespace std;
class A {
public:
int i;
A(int x) { i = x; }
~A(){ cout << i << endl;}
};
int main()
{
A a(1);
A * pa = new A(2);
delete pa;
return 0;
}
执行效果