栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++编程规范(二)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++编程规范(二)

5. “类”相关的编码规范

(1)不要在类的构造函数和析构函数中去调用虚函数

    因为如果一个类里面有虚函数,那么这个类的对象就有属于自己的虚函数表,虚函数表里面包含了所有的虚函数的指针,如果派生类的构造函数和析构函数中调用了虚函数的话,那么他的派生类(也就是子类)是不会定位到其父类的虚函数实现的。
 

(2)建议大家在平时定义类的时候,使用初始化列表的形式来构建对象,并且将构造函数和析构函数以及初始化对象都放在类外面进行实现

    因为使用初始化列表构造对象,比起构造函数的代码块初始化效率更高、性能更好。

// 在头文件serven.h中定义一个SERVEN类
class SERVEN{ 
public:     
  SERVEN():{}; 
private:     
  int serven_1;    
  char* serven_2; 
};
// 在源文件serven.cpp中初始化类的属性
SERVEN::SERVEN():serven_1(0),serven_2(nullptr){}    

(3) 仅当只有数据成员时使用struct,其它一概使用class

    当一个结构里面只有属性,没有方法的时候一般使用struct类进行定义,其余的使用class来封装成一个类。

(4) 尽量避免菱形继承

    菱形继承是指,两个子类继承了同一个父类,然后有另外一个类继承了上面的两个子类:

代码为:​​​​​​​

// 类SERVEN_1
class SERVEN_1{
...
}

// 类SERVEN_2 继承类 SERVEN_1
class SERVEN_2: public SERVEN_1{
...
}

// 类SERVEN_3 继承类 SERVEN_1
class SERVEN_3: public SERVEN_1{
...
}

// 类SERVEN_4 继承类 SERVEN_2 和 类 SERVEN_3
class SERVEN_4: public SERVEN_2, SERVEN_3{
}

(5) 一般使用public公有继承

(6) 如果这个类定义了虚函数,那么这个类的析构函数建议定义为虚函数

    在声明重载时,请使用override、final或virtual的其中之一进行标记。

(7) 将所有的类的属性和方法都定义为私有private,除非那些静态static成员
    这么做的原因是要求对数据成员进行存取控制。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1009404.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号