条款19:设计 class 犹如设计 type
在看到”class”和”type”,就一定要先区别一下这两者:
class - 其意思是自定义的类,需要自己控制一切;
type - 其意思是系统预定义的类,类似int、double、string、vector,别人写好给大家用的。
因此,此条款就是在强调,自定义的类要参考系统预设的类,看看别人的类是怎么写的,它是为什么好用,为什么安全的,这对设计思想提出了较高的要求。
原书中也给出了一些基础性的参考问题,如下:
一、需要回答的问题
1、对象如何去创建和销毁?
这里个人觉得是要考虑构造函数和析构函数内要做什么,比如考虑性能就要记得处理指针成员变量,是否要在构造就去new,析构要不要处理delete等。
详见 第八章 的设计思路。
2、对象初始化与对象的赋值应该有什么样的差别?
切莫混淆 “初始化” 和 “赋值”。
详见 第四章 的设计思路
3、新type如果被pass-by-value意味着什么?
此问题关注点在于拷贝构造函数,要注意区分 浅拷贝