美文网首页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++沉思录》

    相关文章

      网友评论

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

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