美文网首页C++ 杂记
类设计者的核查表【文摘】

类设计者的核查表【文摘】

作者: 赵者也 | 来源:发表于2017-11-02 21:35 被阅读5次

1、类需要一个构造函数么?

2、数据成员是私有的么?

3、需要一个无参的构造函数么?

4、是不是每个构造函数初始化所有的数据成员?

5、类需要析构函数么?

6、类需要一个虚析构函数么?

当然,决不会用作基类的类是不需要虚析构函数的——“任何虚函数只在继承的情况下才有用。”

假设有:D public: B

则只要有人可能会对实际指向D类型对象的B*指针执行delete表达式,你就需要给B加上一个虚析构函数。

例:

B* pbd = new D;

delete pbd;

7、你的类需要复制构造函数么?

如果类在构造函数内分配资源,则可能需要一个显示的复制构造函数来管理资源;

如果不想用户能够复制类的对象,就声明复制构造函数(可能还有赋值操作符)为私有的。

8、你的类需要一个赋值操作符么?

需要复制的构造函数,多半会需要。

9、你的赋值操作符能正确地将对象赋给对象本身么?(要先保存旧值,再赋新值,再删除旧值。)

10、类需要定义关系操作符么?

11、删除数组时,你记得使用 delete[] 了么?

12、记得在复制构造函数和赋值操作符的参数类型中加上 const 了么?

13、如果函数有引用参数,他们应该是 const 引用么?

14、记得适当地声明成员函数为 const 的了么?

文字摘自《C++沉思录》

相关文章

  • 类设计者的核查表【文摘】

    1、类需要一个构造函数么? 2、数据成员是私有的么? 3、需要一个无参的构造函数么? 4、是不是每个构造函数初始化...

  • 《C++沉思录》学习笔记一

    只有在程序通过指向基类对象的指针或者基类对象的引用调用虚函数时,才会发生运行时的多态现象。 类设计者的核查表1.你...

  • 《C++沉思录》:类设计者的核查表

    C++的核心概念是类。 C++采用类将状态和动作绑定在一起。 如果一个类需要拷贝构造函数,则大多数情况下也需要一个...

  • 告诉你9个UI设计秘密

    文摘:UI设计者APP - http://www.shui-mai.com 跟大多数人一样,我总觉得自己品味不俗。...

  • 质量管理之寻找质量问题的直观工具1—调查表

    寻找质量问题的直观工具1—调查表 1.记录调查表 2.分布调查表 3.缺陷位置调查表 4.缺陷原因调查表 调查表又...

  • 极简汇率

    做交互前后体验这款产品,有不同的感受。之前纯粹觉得简约好用,现在想从设计者的角度想多一些。 一、 - 汇率工具的核...

  • Unix哲学之分离原则

    策略同机制分离,接口同引擎分离 正文摘抄: 1. 在Unix之失的讨论中,我们谈到过X系统的设计者在设计中的基本抉...

  • java时间日期的处理

    本文摘录自:Java时间日期的处理:Java Date类、Calendar类详解深入理解Java常用类-----时...

  • JVM3

    类加载器 JVM设计者把类加载阶段中的“通过'类全名'来获取定义此类的二进制字节流”这个动作放到Java虚拟机外部...

  • Java类加载器:线程上下文类加载器

     在《Java类加载器:类加载原理解析》提到的类加载器的双亲委派模型并不是一个强制性的约束模型,而是Java设计者...

网友评论

    本文标题:类设计者的核查表【文摘】

    本文链接:https://www.haomeiwen.com/subject/vmgapxtx.html