class A{ public: A(){ p = this }; ~A{ if( p != NULL){ delete p; p = NULL }; } A *p; }
由于A类中有一个指针A *p;而构造函数中有p = this;也就是说整个指针指向了对象本身。这个会导致无限构造。所以不要构造本身的指针,p = NULL即可。
时间: 2024-10-16 13:23:20
class A{ public: A(){ p = this }; ~A{ if( p != NULL){ delete p; p = NULL }; } A *p; }
由于A类中有一个指针A *p;而构造函数中有p = this;也就是说整个指针指向了对象本身。这个会导致无限构造。所以不要构造本身的指针,p = NULL即可。