首页 > 编程语言 >C++常用命名法与书写规范

C++常用命名法与书写规范

时间:2022-10-31 20:31:14浏览次数:73  
标签:nWidth 函数 -- 书写 eg C++ int 命名


常用命名法有三种:

​驼峰命名法​​​、​​匈牙利命名法​​​、​​帕斯卡命名法​​。

 

这三种命名方法各有千秋,以庄子的齐物论来说就是“道无终始,物有死生,不恃其成”。我们要“吸百家之长,圆我代

码功夫”,废话说了几行了,综合出来的代码规范如下:

 

一、标识符

1、简单、合理、准确的英文单词(不要缩写),切忌汉语拼音。(eg:不要把CurrentWidth写出NowWidth)

2、不要仅靠大小写区分标识符

3、避免一个标识符多种定义、避免出现数字编号、避免在不同作用域重名

4、写库函数或接口开发时,增加库标识头

 

 

二、类型【限定符(const等)+修饰符(long等)+数据类型(int等)+指针(*)+成员变量名】

1、指针应该应该紧靠数据类型(eg:int* m_nWidth)

2、变量前缀:类的成员m_,静态变量s_,外部全局变量g_,静态全局变量sg_,共享全局变量gg_

3、类型前缀:bool--b,char--ch,int--n,long--l,float-f,double--d,指针-p,enum-e,数组--g

4、常量及宏定义:全部大写

 

三、结构 

1、if、for、switch等关键字独占一行,后面跟半个“{”,作用域结束用“}”,作用域内仅一条语句也这么写

if( m_nWidth == 19) {
m_nWidth=20;
}

2、长行拆分(超过一般函数会折行显示)

3、对于算法较复杂的加小括号修饰

4、尽量减少多继承、尽量不使用操作符重载

 

四、函数 

1、操作系统风格:Windows风格--GetWidth()、Linux风格--get_width()(注:Qt风格--getWidth())

2、内联函数定义在头文件,inline关键字在最前(eg:inline int getWidth(){return m_nWidth;})

3、Qt的槽函数以on开头(eg:onGetWidth())

4、Qt的信号函数以sig开头(eg:sigClicked())

5、取值函数若只返回一个值或只有简单操作,后加const限定符。

6、为防止构造函数隐式转换,加explicit关键字

7、实现虚函数是,加virtual关键字明确函数类型

 

五、其他

1、注释、在代码的上边、右边、或结束位置,函数的注释写在头文件

2、结构体、联合体、枚举、类名的首字母大写

3、好的声明次序:typedefs和enums,常量,构造函数,析构函数,成员函数,数据成员

 

标签:nWidth,函数,--,书写,eg,C++,int,命名
From: https://blog.51cto.com/u_15854865/5811198

相关文章

  • C++案例
    错误1:类加了括号 错误2:内存泄漏:  源代码:    ......
  • C++面向对象高级开发(六)写好一个String类
    类的内部:public:构造函数、拷贝构造、拷贝赋值、析构函数的接口和辅助函数以及它的实现private:参数  类的外部:内联:inline构造函数:判断是否有初值:有初值:分配......
  • C++ 11 random库
    C++11random库random库的组件主要有随机数引擎和随机数分布引擎随机数引擎类类名:default_random_engine声明方法:类名对象名随机数引擎类是可以独立运行的随机数......
  • 文件命名
    源文件命名不成功我的记录原因:给文件命名时,输入了特殊字符————‘*’错误:出现了命名不成功这一现象后,我没去反省,没去找原因,只是一味的重新命名,做机械重复的动作......
  • Qt on Android 开发之 C++与Java 交互
    目录​​简述​​​​Qt引入Android模块​​​​Java示例​​​​Cpp与java交互​​简述我做了一个小例子,来实现了C++与Java之间的交互。该示例是以整形和字符型举例说明,......
  • C++ 不知树系列之认识二叉树(顺序、链表存储的实现)
    1.概念什么是二叉树?顾名思义,二叉树指树中的任何一个结点(除叶结点)的子结点不能多于2个。二叉树可分为:一般二叉树。只要符合二叉树的定义便可。满二叉树。满的意......
  • grpc demo python客户端 c++服务端
    项目需啊将网站上传的图片传入c++推理引擎,网站使用flask架构,python编写,图片推理引擎是一个单独的server,c++编写,因此用grpc来传输比较合适。理论上来说只要规定好proto文件,......
  • 文件重命名
    废话少说,直接上代码importosfromosimportpathimportoperatordefscaner_file(url):file=os.listdir(url)forfinfile:real_url=path.......
  • 软件版本命名规则
    通用版本命名规范这里分享一种通用的版本命名规范,格式:主版本号.子版本号.修订版本号.日期_版本阶段比如:V1.2.3.20221028_rc说明:第一位(1):主版本号。当功能模块有较大的变......
  • C++&Python 描述 LeetCode 1.两数之和
    C++&Python描述LeetCode1.两数之和  大家好,我是亓官劼(qíguānjié),在【亓官劼】公众号、、GitHub、B站、华为开发者论坛等平台分享一些技术博文。放弃不难,但坚持......