当某个类含有类指针成员时需注意

当某个类含有类指针成员时需注意,如果该成员时通过类的构造函数初始化的。需注意:

#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;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值