C++(四十一)之-> *运算符重载(智能指针对自定义对象的托管)

本文介绍了如何通过重载运算符来设计智能指针,以实现堆内存的自动释放。智能指针在栈上创建,能够托管自定义对象,并在不再使用时自动析构并释放堆中的Person类对象。
摘要由CSDN通过智能技术生成

我们在堆中申请对象内存的时候,

需要记得去释放。

但是有没有能让在堆中申请的内存自动释放呢?

当然有,就是我们的指针重载运算符可以实现。

我们可以设计一个智能指针,该指针指向我们

设计可用的对象,在使用完成后可以自动释放堆中的内存。

 

下面我们举例说明:

/****************************************************
 * brief  : 指针 -> * 运算符重载 
 * author : shao 
 * date   :	2020-03-10
 * note   : none 
 *
 ****************************************************/
#include <iostream>

using namespace std;

class Person{
public:
	int p_age;
	int p_ID;

	Person()
	{
		cout << "Person 的默认构造函数!" << endl;
		 
		this->p_age = 0;
		this->p_ID = 0;
	}
	
	Person(int age, int ID)
	{
		cout << "Person 的有参构造函数!" << endl;
		
		this->p_age = age;
		this->p_ID = ID;
	} 
	
	void showInfo()
	{
		cout << "p.age : " << this->p_age << ", p.ID : " << this->p_ID << endl;
	}
	
	~Person(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值