zoukankan      html  css  js  c++  java
  • 类设计者的核查表

    1.你的类需要一个构造函数吗

              需要构造函数来隐藏类的内部工作方式。

    2.你的数据成员是私有的吗

               通常使用公有的数据成员不是什么好事,因为类设计者无法控制何时访问这些成员。

    3.你的类需要一个无参的构造函数吗

              为了可生成对象数组或类的对象不必显示的初始化类的构造函数,必须显示地写一个无参的构造函数。

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

               每个构造函数都要负责为所有的数据成员设置经过明确定义的值。

    5.类需要析构函数吗

               看该类是否分配了资源,而这些资源又不会由成员函数自动释放。

    6.类需要一个虚析构函数吗

              决不会用在基类的类是不需要虚析构函数的。

            例如:

             struct B

             {

                       String s;

                      //virtual ~B() {}

               };

               struct D : B{

                        Stirng t;

                 };

               int main()

                {

                          B* bp=new D;

                           delete bp;              //这里有问题,除非B有一个虚析构函数,否则将调用错误的析构函数

                  }

    7.你的类需要复制构造函数吗

               你的类在构造函数内分配资源,则可能需要一个显式的复制构造函数来管理资源。

    8.你的类需要一个赋值操作符吗

                如果需要复制构造函数,同理多半也会需要一个赋值操作符。

    9.你的赋值操作符能正确地将对象赋给对象本身吗

               注意。

    10.你的类需要定义关系操作符吗

               如果你的类逻辑上支持逻辑操作,可以定义关系操作符。

    11.删除数组时,你记住用delete[]吗

                C++系统不想占用现有C系统的malloc函数,因此必须利用原来的这个malloc直接实现new。

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

                  需要

    13.如果函数有引用参数,它们应该是const引用吗

                只有单函数想改变参数是,它才应该有不用const声明的引用参数。

    14.记得适当地声明成员函数为const的了吗

                如果确信一个成员函数不用修改它的对象,就可以声明它为const。

    转载自:http://blog.csdn.net/cq20110310/article/details/7251198

  • 相关阅读:
    org.hibernate.HibernateException: No Session found for current thread
    TCP/IP协议 HTTP协议
    [ERROR][org.springframework.web.context.ContextLoader][main] Context initialization failed org.sprin
    oracle 导出表结构和数据,使用plsql
    jar包里查找指定的class文件,排查是否存在或重复,工具软件:Java Class Finder
    maven手动安装jar到本地仓库
    The reference to entity “idNo” must end with the ';' delimiter 异常处理
    activeMQ下载,安装,启动,关闭
    Oracle错误:ORA-01033
    -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m
  • 原文地址:https://www.cnblogs.com/balingybj/p/4732042.html
Copyright © 2011-2022 走看看