C++ 沉思录笔记
有的情况下,现在的折衷方案比未来的理想方案好得多 我考虑问题的本质是什么,再定义一个类抓住这个本质,并确保这个类能独立地工作。然后在遇到符合这个本质的问题时就使用这个类。 只要类定义正确,我就只能按照我编写它的初衷那样去用它。 C++ 哲学:抽象,实用,只为用到的东西付出代价。 类设计者的核查表: 你的类需要一个构造函数吗? 你的数据成员是私有的吗?(使用函数,可以延迟计算,不必时时计算,保证数据成员的准确性) 你的类需要一个无参的构造函数吗?(对象数组) 是不是每个构造函数初始化所有的数据成员? 类需要析构函数吗? 类需要一个虚析构函数吗? 你的类需要复制构造函数吗?(是否需要深拷贝) 你的类需要一个赋值操作符吗? 你的赋值操作符能正确地将对象赋给对象本身吗? 你的类需要定义关系操作符吗? 删除数组时你记住了用 delete[] 吗? 记得在复制构造函数和赋值操作符的参数类型中加上 const 了吗? 如果函数有引用参数,它们应该是 const 引用吗? 记得适当地声明成员函数为 const 的了吗? 代理类:用类来表示概念(RAII) class Vehicle{ public: virtual double weight() = 0; virtual void start() = 0; virtual Vehicle* copy() const = 0; virtual ~Vehicle(){} }; class RoadVehicle: public Vehicle{ /* ....