- 论坛徽章:
- 0
|
第一个问题是,a发生析构时*p会不会被释放呢?如果释放了,那么*p不成了悬垂指针了?
第二个问题是,exit(0)后的cout<<"2"<<endl;没有被执行,而且不能在这一句加断点,为什么呢?#include <iostream>
using namespace std;
class A
{
protected:
int i;
int *a;
public:
A(int j,int *a):i(j),a(a){}
~A()
{
cout << "1" << endl;
exit(0);/*这里调用了exit()函数*/
cout << "2" << endl;
}
};
int main()
{
//A a(3);
int *p=new int(5);
A a(3,p);
return 0;
} |
|
|