Qt编码规范
1.命名规定
(1)通用命名约定
避免使用缩写
(2)文件命名
全部小写,可以包含下划线
some_class_test_a.h
some_class_test_a.cpp
someclasstestb.h
someclasstestb.cpp
(3)文件命名
类名是名词,每个单词以大写字母开头,不包含下划线,且以大写字母C开头
class CSomeClassA {
};
class CMyClassB {
};
(4)变量名命名
1.变量名是名词
2.首个单词以小写字母开头,后续单词以大写字母开头
3.每个变量占一行
4.单一字符的变量只在临时变量或循环计数使用
5.类成员变量需要在变量名前加m_前缀
6.使用内部封装类作为d指针成员变量时,封装类可不使用m_前缀
7.局部变量要等需要使用时再进行定义变量,且定义时必须初始化:整数用0,实数为0.0,指针用nullptr,字符用'0'
8.尽量不要使用全局变量,以降低耦合
9.bool类型的变量尽量使用enabled,visible,movable这样的形式
(5)常量命名
常量不含前缀且应该全部大写,单词间有下划线,包括全局常量和宏定义,例如:
const int MY_DEFINE_NUMBER = 0;
//...
#define MY_DEFINE_VALUE 0
(6)函数命名
函数名力求通过名称就能知道调用者知道其返回的是什么属性,或者其调用之后的作用的目标。
因此,取值函数尽量使用名词或者带修饰词的名词,而赋值或者带来改变的函数采用动宾语法,例如 setWidgetMovable(),返回 bool 的函数可以使用 is 加属性名的方式,首个单词以小写字母开头,后续单词以大写字母开头,例如:
QString name() const;
QSize screenSize() const;
void setPoint(const QPoint& point);
void drawLine(const QPoint& startPoint, const QPoint& endPoint);
bool isMovable() const;
void setMovable(bool movable);
函数参数使用名词或者带限定修饰词的名词,尽量避免缩写或者与Qt一致的缩写形式,首个单词以小写字母开头,后续单词以大写字母开头,参数类型如果不是基本数据类型,使用const引用作为参数,例如:
void drawRectangle(const QPoint& topLeft,const QPoint& bottomRight);
void drawRectangle(const QRect& rect);
函数及其参数的命名一定不要出现无意义或者根据其名称难以知道其作用的名称,例如:fun0、f1 、param0、p1 等名称。这种名称往往作者本人回头看代码时都要看下函数实现,才能知道当初自己想要做什么。
(7)枚举命名
枚举名和枚举值都是名词,每个单词以大写字母开头,且枚举名的第一个单词是<SomeOne>,例如:
enum SomeOneTitleBarBackgroundColor{
Transparent,
White,
Black,
Red
}
(8)命名空间命名
命名空间的名称是名词,每个单词以大写字母开头,且两个单词是<SomeOne>,命名空间的结束大括号之后是跟命名空间名称的注释,例如:
namespace SomeOneUtils{
//...
//SomeOneUtils
}
(9)结构体命名
1.结构体只定义变量,不定义函数,需要定义函数请使用类
2.结构体名使用名词,每个单词以大写字母开头
3.结构体成员使用名次定义,首单词以小写字母开头,后续单词以大写字母开头示例如下:
struct SuperDevice {
bool isSuperDevice;
QString name;
};