c++编程规范

                                                                                                                              1、 (1)名称是由字母、数字、及下划线组合而成, 且第一位不能为数字,  尽量使用标准c++14的特性和标准, 这样写起来              更加方便快捷.
   (2)指针尽量使用share_ptr, weak_ptr之类的东西操作指针,防止内存异常或者泄露. 尽量使用标准库里面的东西,这样               跨平台性更好. 
   (3)与平台相关的api尽量使用函数封装成接口, 这样平台移植会更加方便. 
        例如不同平台的打开文件操作,我们把平台相关的api封装成openFile接口,使之符合跨平台特性
   (4)尽量降低代码的耦合度, 尽量把相同的重复性代码抽离出来, 提高代码复用程度. 不要在代码中定义数值类型的常              量, 必须使用宏来取代数值型常量, 不仅修改调试很方便而且代码逻辑不容易出错.
    (5)如果修改其他框架.请与修改的框架代码风格保持一致性, 以便于修改和阅读.

define LINUX

define MAX_PATH_SIZE 255

define FILE_ERR -1

int openFile(const char* path, const int &mode)
{
if(strlen(path) > MAX_PATH_SIZE) return FILE_ERR;

int fd;
#ifdef LINUX
    fd = open(path, mode);
#endif

#ifdef MAC
    fd = fopen(path, mode);
#endif

#ifdef WINDOWS
    fd = CreateFile(path, mode, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
#endif

return fd;

}

2、 第一位尽量以字母开头,但是在作为类的数据成员可以使用下划线(_)作为开头, 类数据成员必须尽量定义为私有成员或者保护成员, 通过成员函数进行存取
//普通变量的定义
int count;
int nameSize;
//类数据成员的定义,普通数据成员都以m_的方式, 静态数据成员s_的方式
class Person
{
//通过成员函数存取数据
public:
const string& getName()const;
const int& getWedget()const;
static int& getCount()const;

      void setName(const string& newName)
      void setWidget(const int& newWidget);
      static void setCount(const int& newCount);

private:
    string m_Name;
    int m_Widget;
    static int s_Count; 

}

3、 类的名称要以大写字母开头.
class Person;

4、 函数的名称以小写字母开头;
void getName();
void Person::GetName();

5、 当使用多个单词命名名称时,采用“驼峰规则”,即每个单词的首字母大写,例如:
void getData();
class ControlPanel;

6、 全局常量和宏定义以及类型的定义,函数指针类型 的名称都应该全部大写, 单词之间用下划线风格,常量也尽量全部大写,并尽可能在类的作用域内创建枚列举值, 枚举类型成员变量前面带类型的首字母大写和下划线, 例如
const int MAX_SIZE = 100; //常量的定义

define MAX_SIZE 100; //宏定义

typedef int INT32;//类型定义
typedef long INT64;
typedef void (CALLBACK*)(const int &); //函数指针类型
enum OPEN_MODE
{
OM_OPEN,
OM_CLOSE,
OM_WRITE,
OM_READ,
}

7、 每一个类的名称都应该是一个名词或者是名称短语;例如:
class ControlPanelData;

8、 每一个函数名称都应该是个动词或者是动词短语;例如:
double getSpeed();

9、 在if()语句中,每一个BOOL变量都应该近似于一个句子,例如:
bool isOpened;

10、针对于数据成员,采用了国际通用的匈牙利标记法,通过使用相同的前缀,让代码中的数据成员更加容易识别:
class Member
{
private:
int m_Size, m_Height; //以小写字母m_开头
static int s_Count; //以小写字母s_开头
}

11、获取器和设置器都是根据约定成俗的命名规则:
class Color
{
public:
int getColor()const; //获取器
bool isCheckd()const; //bool获取器
void setColor(const Color& newColor); //设置器
private:
int m_Color;
}
12. (1)关于符号表达式的编写规则, 花括号左右对其, 符号之间空格隔开, 单条条件判断语句不必使用花括号,
(2)每行语句之间尽量换行隔开, 使之看起来更加清晰, 尽量让代码看起来更加松散, 阅读排查问题更加方便
例如:
if(exp)
{
if(exp > exp2)
return 1;
else
return 2;
}
class Exp
{
private:
int m_Val = 1;

public:
    const int getVal()const {return m_Val;}

}
void exp(int a, int b, int c)
{
switch(a)
{
case 1:break;
case 2:break;
case 3:break;
}
}

  1. (1)每个函数尽量不要超过200行代码,如果超过代码逻辑尽量分离出来,降低代码的耦合度,
    (2)每个文件的代码长度尽量不要超过2000行,超过尽量分离出不同文件.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值