IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    C++沉思录读书笔记:类设计者的核查表

    admin发表于 2011-04-26 13:26:05
    love 0

    每一个使用C++设计类时,都有必要将下面的14条准则烂熟于心:

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

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

    通常公有的数据成员不是什么好事

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

    如果一个类已经有了构造函数,编译就不会提供默认的无参构造函数,如果需要必须显示地写一个无参的构造函数

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

    构造函数的用途就是用一种明确定义的状态来设置对象,而对象的状态由对象的数据成员进行反应,因此构造函数都要负责为所有的数据成员设置经过明确定义的值。当然也会有写例外,类会有一些数据成员,他们只在对象存在一定时间后才会有意义。

    5. 类需要析构函数吗?

    应该确认类是否分配了资源,这些资源会不会由成员函数自动释放,特别那些构造函数中使用了new表达式的,通常需要在析构函数中使用delete表达式来显式地释放资源

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

    任何虚函数只有在继承的情况下才会有用!

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

    通常有析构函数的类也需要一个复制构造函数!

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

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

    String& String::operator =(const String& s) 
    {
         if (&s != this) {
               delete[] this;
               data = new char[strlen(s.data) + 1];
               strcpy(data, s.data);
        }
        return *this;
    }

    10. 类需要定义关系操作符吗?
    11. 删除数组时请记住用delete[]
    12. 记得在复制构造函数和赋值操作符的参数类中加上const
    13. 如果函数有引用参数,它们应该是const引用吗?
    14. 记得适当地声明成员函数为const了吗?

    最多留言日志

    • 利用War-Ftpd的漏洞深入解析缓冲去溢出
    • 修改wordpress最新评论的显示样式
    • jquery ajax 提交checkbox数组的方法
    • 关于我
    • 程序员眼中的编程语言


沪ICP备19023445号-2号
友情链接