首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

类中含有类本身的指针,构造函数和析构函数如何写

2013-09-06 
类中含有类本身的指针,构造函数和析构函数怎么写?今天看到一个找错题如下#include iostreamusing namesp

类中含有类本身的指针,构造函数和析构函数怎么写?
今天看到一个找错题如下


#include <iostream>
using namespace std;
class A
{
public:
A()
{
p = this;
}
~A()
{
if (p!=NULL)
{
delete p;
p = NULL;
}
}
private:
A *p;
};

int main()
{
A a;
return 0;
}

我当时回答了没有给p分配内存,后来运行程序觉得应该是析构函数陷入了死循环。
另外就是如果真要给p分配内存应该怎么分配? 面试题,指针
[解决办法]
delete ->相对于new来说的,你这样容易造成未定义的结果
[解决办法]
”p分配内存“你的意思是在调用构造函数的时候对象还没有分配空间吗,事实上在调用构造函数的时候,对象的空间已经分配,构造函数的调用只是为了初始化对象的成员(当然还有在编译器层面上对构造函数函数的扩充)
[解决办法]
楼主可加在析构函数加
cout<<this<<endl;看看
确实是死循环
[解决办法]
的确会死循环。。

热点排行