摘要:
这里初看到”class”和”type”,感觉他们是说的是同一样东西,但仔细读了一下,两者在文中还是有区别的。class侧重于自定义的类,而type侧重于系统预定义的类(像int、double、string、vector)。设计好的class,使之像设计type一样,就是说要使自己设计的类像系统预定义的类那样好用,这对设计思想提出了较高的要求。要设计高效的class,需要回答以下的问题:1. 对象如何去创建和销毁?这是构造函数和析构函数的问题,当然如果想要有堆分配方式,还需要重载new、new[]、delete和delete[]运算符;2. 对象初始化与对象的赋值应该有什么样的差别?初始化是构造 阅读全文
摘要:
从本条款开始,就进入到全书的第四部分:设计与声明。程序员设计接口时应本的对用户负责的态度,“如果客户企图使用某个接口而却没有获得他所预期的行为,这个代码不应该通过编译;如果代码通过了编译,那它的作为就该是客户所想要的”。举一个书上的例子:1 class Date2 {3 public:4 Date(int month, int day, int year);5 …6 };这个类看上去好像没有问题,提供的构造函数接口简单直观,然而它却做了一个假设——用户都能够按月、日、年的顺序来传参。但事实上,一定会有不少用户记错这个顺序,比如我们常用的顺序是年、月、日,所以有同学会下意识地这样... 阅读全文