博客专栏  >  研发管理   >  C++编程规范

C++编程规范

编程规范反应了业界最经久考研的经验,尽可能多的掌握这些规范,对提高我们的工作效率、提高我们的编程水平具有很大的促进作用。对这些规范需要进行思考、实践、再思考、再实践。。。

关注
31 已关注
48篇博文
  • C++编程规范之48:在构造函数中使用初始化代替赋值

    摘要:     设置一次,到处是用:在构造函数中,使用初始化代替复制来设置成员变量,能够防止发生不必要的运行时操作,而输入代码的工作量则保持不变。     构造函数会在系统内部生成初始化代码。考虑如下...

    2014-02-28 13:04
    1701
  • C++编程规范指47.以同样的顺序定义和初始化成员变量

    摘要:    与编译器一致:成员变量初始化的顺序要与类定义中声明的顺序始终保持一致,不用考虑构造函数初始化列表中编写的顺序。要确保构造函数代码不会导致混淆地指定不同的顺序。 考虑以下代码: class...

    2014-02-28 12:48
    2020
  • C++编程规范指46:如果提供专门的new,应该提供所有标准形式(普通、就地和不抛出)

    摘要:     不要隐藏好的new:如果类定义了operatornew 的重载,就应该提供operator new 所有三种形式——普通(plain)、就地(in-place)和不抛出(nothrow...

    2014-02-23 21:09
    1480
  • C++编程规范之45:总是一起提供new和delete

    摘要: 它们是一揽子交易:每个类专门的重载void*operator new(parms)都必须与对应的重载void operator delete(void*, params)相随相伴,其中parm...

    2014-02-20 22:27
    1339
  • C++编程规范之44:优先编写非成员非友元函数

    摘要: 要避免交成员费:尽可能将函数指定为非成员非友元函数。 非成员非友元函数通过尽量减少依赖提高了封装性:函数体不能依赖于类的非公用成员。它们还能够分离巨类,释放可分离的功能,进一步减少耦合。它们...

    2014-02-19 11:33
    1555
  • C++编程规范之42:不要公开内部数据

    摘要:     不要过于自动自发:避免返回类所管理的内部数据的句柄,这样类的客户就不会不受控制地修改对象自己拥有的状态。 class Socket { public:          //...打...

    2014-01-14 19:29
    1460
  • C++变成规范之41:将数据成员设为私有的,无行为的聚类(C语言形式的struct除外)

    摘要:     它们不关调用者的事:将数据成员设为私有的。简单的C语言形式的struct类型只是将一组值聚集在了一起,并不封装或者提供行为,只有在这种struct类型中才可以将所有数据成员都设成公用的...

    2014-01-14 09:15
    2033
  • C++编程规范之40:要避免提供隐式转换

    摘要:     并非所有的变化都是进步。隐式转换所带来的影响经常是弊大于利。在为自定义类型提供隐式转换之前,请三思而行,应该依赖的是显示转换。     隐式转换主要有两个主要的问题:     1.它们...

    2014-01-13 22:24
    1375
  • C++编程规范之39:考虑将虚拟函数生命为非公用的,将公用函数声明为非虚拟的

    摘要:     在基类中进行修改代码高昂:请将公用函数设为非虚拟的。应该将虚拟函数设为私有的,或者如果派生类需要调用基类版本,则设为保护的。     在面向对象层次结构中进行修改是昂贵的,所以应该实施...

    2014-01-01 12:59
    1301
  • C++编程规范之38:实施安全的覆盖

    摘要:     负责任地进行覆盖:覆盖一个虚拟函数时,应该保持可替换性;说得更具体一点,就是要保持基类中函数的前后置条件。不要改变虚拟函数的默认参数。应该显式地将覆盖函数重新声明为virtual.  ...

    2013-12-31 08:51
    1202
  • C++编程规范之37:公用继承即可替换性。继承,不是为了重用,而是为了被重用

    摘要:     知其然:公用继承能够使基类的指针或者实际引用指向某个派生类的对象,既不会破坏代码的正确性,也不需要改变已有的代码。     还要知其所以然:不要通过公用继承重用(基类中的已有)代码,公...

    2013-12-30 19:29
    1631
  • C++编程规范之36:优先提供抽象接口

    摘要:     偏爱抽象艺术吧:抽象接口有助于我们集中精力保证抽象的正确性,不至于受到实现或者状态管理细节的干扰。优先采用实现了抽象接口的设计层次结构。 应该定义和继承抽象接口。抽象接口是完全由(纯)...

    2013-12-29 17:45
    1481
  • C++编程规范之35:避免从并非要设计成基类的类中继承

    摘要:     有些人并不想生孩子:本意是要独立使用的类所遵守的设计蓝图与基类不同。将独立类用作基类是一种严重的设计错误,应该避免。要添加行为,应该添加非成员函数而不是成员函数。要添加状态,应该使用组...

    2013-12-27 18:26
    1435
  • C++编程规范之34:用组合代替继承

    摘要:     避免继承带来的重负:继承是C++中第二紧密的耦合关系,仅此于友元关系。紧密的耦合是一种不良现象,应该尽量避免。因此,应该用组合代替继承,除非知道后者确实对设计有好处。 与继承相比,组...

    2013-12-22 23:48
    1744
  • C++编程规范之33用小类代替巨类

    摘要:     分而治之:小类更易于编写,更易于保证正确、测试和使用。小类更有可能适用于各种不同的情况。应该用这种小类体现简单概念,不要用大杂烩式的类,它们要体现的概念既多又复杂。     设计花哨的...

    2013-12-22 23:47
    1476
  • C++编程规范之32:弄清楚要编写的是哪种类

    摘要: 了解自我:有很多种不同的类。弄清楚要编写的是哪一种。     不同种类的类适用于不同用途,因此遵循着不同的规则。值类模仿的是内置类型。一个值类应该:     1.有一个公用析构函数、复制构造函...

    2013-12-22 11:28
    1347
  • C++编程规范之31:不要编写依赖于函数参数求值顺序的代码

    摘要:     保持(求值)顺序:函数参数的求值顺序是不确定的,因此不要依赖具体的顺序。 在C++中对函数参数的计算顺序不是固定的,而是随机进行计算的,因此在编写程序时,要注意到这一点,不要让后面参数...

    2013-12-22 09:32
    1809
  • C++编程规范之30:避免重载&&,||或,(逗号)

    摘要:     明智就是知道合适适可而止:内置的&&,||和,(逗号)得到了编译器的特殊照顾。如果重载它们,它们就会变成普通函数,具有完全不同的语义(这将违反地26条:保持重载操作符的自然语义和第31...

    2013-12-21 22:28
    1928
  • C++编程规范之29:考虑重载,以避免隐式类型转换

    摘要:     如无必要勿增对象:因素类型转换提供了语法上的便利。但是如果创建临时对象的工作并不不要而且适于优化,那么可以提供签名与常见参数类型精确匹配的重载函数,而且不会导致转换。 隐式转换最常见的...

    2013-12-21 22:27
    1290
  • C++编程规范之28:优先使用++和—的标准形式。优先调用前缀形式

    摘要:     如果定义++c,也要定义c++:递增和递减操作符很麻烦,因为它们都有前缀和后缀形式,而两种形式语义又略有不同。定义operator ++和operator –时,应该模仿它们对应的内置...

    2013-12-21 22:25
    1481
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部