c++ 学习笔记

1、const 成员不能改变其所操作的对象的数据成员。const 必须同时出现在声

明和定义中,若只出现在其中一处,就会出现一个编译时错误。

2、在普通的非 const 成员函数中,this 的类型是一个指向类类型的 const

指针(第 4.2.5 节)。可以改变 this 所指向的值,但不能改变 this 所保存

的地址。在 const 成员函数中,this 的类型是一个指向 const 类类型对象的

const 指针。既不能改变 this 所指向的对象,也不能改变 this 所保存的地址。

3、不能从 const 成员函数返回指向类对象的普通引用。const 成

员函数只能返回 *this 作为一个 const 引用。 

4、基于成员函数是否为 const,可以重载一个成员函数;同样地,

基于一个指针形参是否指向 const(第 7.8.4 节),可以重载一个函数

5、可变数据成员(mutable data member)永远都不能为 const,甚至当它是

const 对象的成员时也如此。

6、按照与成员声明一致的次序编写构造函数初始化列表

是个好主意。此外,尽可能避免使用成员来初始化其他

成员。 

7、对许多类而言,合成复制构造函数只完成必要的工作。只包含类类型成员或

内置类型(但不是指针类型)成员的类,无须显式地定义复制构造函数,也可以

复制。 

8、如果类需要析构函数,则它也需要赋值操作符和复制构造函

数,这是一个有用的经验法则。这个规则常称为三法则,指

的是如果需要析构函数,则需要所有这三个复制控制成员。 

9、定义智能指针的通用技术是采用一个使用计数。智能指针类将一个计数器与

类指向的对象相关联。使用计数跟踪该类有多少个对象共享同一指针。使用计数

为 0 时,删除对象。使用计数有时也称为引用计数。 

 

10、复制构造函数类似:Exmple(const Exmple &exm): name(exm.name){}

11、赋值操作符类似:Exmple& operator=(const Exmple &exm) { name = exm.name;}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值