《高质量程序设计指南——C/C++》第13章 对象的初始化、拷贝和析构

第13章 对象的初始化、拷贝和析构
    构造函数、析构函数和赋值函数(操作符)是每个类最基本的函数。
13.1 构造函数与析构函数的起源
    把对象的初始化工作放在构造函数中,把清除工作放在析构函数中。当创建对象时构造函数被自动执行;当对象消亡时,析构函数被自动执行。这样就不用担心忘记对象的初始化和清除工作了。
13.2 为什么需要构造函数和析构函数
    注意“初始化”与“赋值”的区别。
13.3 构造函数的成员初始化列表
    1)首先调用基类的构造函数,并向它们传递所需的参数;
    2)初始化本类的数据成员(包括成员对象的初始化);
    3)在构造函数体内完成其他的初始化工作。
13.4 对象的构造次序和析构次序
    对象的数据成员的初始化次序只由它们在类中声明的次序决定,因为这个顺序是唯一的!而析构函数则完全按照与构造函数相反的次序执行。
13.5 构造函数与析构函数的调用时机
13.6 构造函数和赋值函数的重载
   1、C++允许为类定义多个构造函数,即重载构造函数。当我们为类定义多个构造函数时,设法把其中相同任务的代码片段抽取出来形成一个非public的成员函数,然后在适当的地方调用它。
   2、类的赋值函数operator=()也是一种拷贝函数,当然也可以重载。其参数可以是当前类(即类的拷贝赋值操作符),也可以是其它任何类型的参数。

13.7 示例:类String的构造函数和析构函数

13.8 何时应该定义拷贝的构造函数和拷贝赋值函数
     通常来讲,倘若类中含有指针成员或引用成员时,就应该重新定义拷贝构造函数和拷贝赋值函数以及析构函数。
13.9 示例:类String的拷贝构造函数和拷贝赋值函数
     不要忘记检查自赋值。
13.10 用偷懒的办法处理拷贝构造函数和拷贝赋值函数
     即如果不想使用编译器为我们生成的函数就要明确的阻止。
13.11 如何实现派生类的基本函数
     基类的构造函数、析构函数和赋值函数都不能被派生类继承。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值