啃书《C++ Primer Plus》 面向对象部分 动态内存管理(下) 动态成员管理

本文介绍了《C++ Primer Plus》中关于面向对象部分的动态内存管理,特别是动态成员的创建与释放。文章强调了动态成员在构造、拷贝、赋值和析构过程中的注意事项,阐述了C++的三法则,即析构、拷贝构造和赋值操作的重要性,以防止内存泄漏和不正确操作。内容涵盖了动态对象的生命周期管理以及如何避免深拷贝和浅拷贝问题。
摘要由CSDN通过智能技术生成

本篇将介绍当对象成员包含动态成员时,需要对其初始化,拷贝,赋值,销毁等过程做出相应的设计。

啃书《C++ Primer Plus》 面向对象部分 动态内存管理(中) 动态对象的创建 重载new和delete

《动态内存管理》内容思维导图如下:
在这里插入图片描述


动态的成员

在对象的成员变量中,也可以使用动态的对象或者变量,这些动态成员为程序的设计提供了便利,却也暗藏风险。

创建与释放

一般来说,动态成员是通过引用或者指针进行使用和管理的。

我们通过下面的程序来说明动态成员的创建和释放
假设现在有类A和类B,A中包含三个成员:一个B类型引用,一个B类型指针,一个B类型对象

using namespace std;
class B
{
   
public:
B(){
   cout << "the constructor in class B" << endl;}
~B(){
   cout << "the destructor in class B" << endl;}
};
class A
{
   
public:
A():yb(*new B())	//引用必须使用初始化列表进行初始化
,b()				//对象成员可以在初始化列表中指定调用的构造函数,也可以不适用初始化列表,默认调用无参构造函数
{
   
    cout << "the constructor in class A" << endl;
	pb = new B();	//指针可以不使用初始化列表初始化,也可以不再构造函数中指定指向对象
}
~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值