当某个类含有类指针成员时需注意,如果该成员时通过类的构造函数初始化的。需注意:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
class Third
{
public:
Third(){printf("This is Thrid's construction!\n");}
~Third(){printf("This is Thrid's unconstruction!\n");}
void OutPutInfo()
{
printf("I am Third's member fun\n");
}
};
class Child
{
public:
Child(Third* &third):third_(third)
{
printf("This is Child's construction!\n");
}
~Child()
{
printf("This is Child's unconstruction!\n");
if (third_)
third_->OutPutInfo();
}
private:
Third* &third_;//此处应该用引用,否则,当thir被释放时,则third_并不能被置null<span style="white-space:pre"> </span>
};
int _tmain(int argc, _TCHAR* argv[])
{
//printf("Hello World!\n");
Third *thir = new Third();
Child* child = new Child(thir);
delete thir;
thir = NULL;
delete child;
child = NULL;
system("pause");
return 0;
}