#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
考点:【析构函数】
1、分析A a(1);A * pa = new A(2);
发现,创建了两个对象但是没有调用内部的成员函数,并且出现了delete
;
2、A a(1);
在栈上创建的对象,在main函数
执行完后会自动执行析构;而A * pa = new A(2);
在堆上创建的对象,并不遵循此特点,需要我们手动释放。
3、故析构函数的作用是打印类数据成员i
的值
4、综上
class A {
public:
int i;
A(int x) { i = x; }
// 在此处补充你的代码
~A(){
cout << i << endl;
}
};