类设计者的核查表
时间:2010-11-06 来源:ronat
最近在看C++沉思录,感觉这本书很适合有了一定语言基础后的读者看。以下照抄书本内容,不为别的,只为强调自己再次记忆及对照。“类设计者的核查表”
- 你的类需要一个构造函数吗?
- 你的数据成员是私有的吗?
- 你的类需要一个无参构造函数吗? -- {Point p; Point pa[100];}
- 是不是每个构造函数初始化所有的数据成员?
- 类需要析构函数吗? -- 有动态申请的对象而没有其余成员函数释放
- 类需要一个虚析构函数吗? -- 如果有这类操作,对指向派生类对象的基数指针执行delete则基类需要虚析构
- 你的类需要复制构造函数吗? --构造函数动态申请了资源的,通常需要复制构造函数来管理动态资源
- 你的类需要一个赋值操作符吗? --如果需要复制构造函数通常需要赋值操作符
- 你的赋值操作符能正确自赋值吗?
- 你的类需要定义关系操作符吗? --容器类通常需要operator==,operator!=,operator<,>,etc以支持唯一,有序等关系
- 删除数组时候你记住了用delete[]吗?
- 记得在复制构造函数和赋值操作符的参数类型中加上const了吗? X::X(const X&),X::operator=(const X&)
- 如果函数有引用参数,它们应该是const引用吗? -- {x+y+z}
- 记得适当地声明成员函数为const了吗?
++++++++++++++++++++++
抽象,继承,动态绑定
相关阅读 更多 +