C++/Qt编程规范

news2025/1/15 20:50:55

文章目录

    • 一、头文件规范
    • 二、变量命名
    • 三、信号和槽
    • 四、注释

一、头文件规范

在编码中对头文件的引用,建议按照以下顺序进行:
1)类定义头文件
2)其他库头文件
a)Qt模块头文件
b)XTAL平台框架模块头文件
c)第三方库头文件
d)自定义公共库头文件
在这里插入图片描述

二、变量命名

除项目中的变量名,函数名使用小驼峰命名法,其他都用大驼峰
项目名称:一般以项目名称对应的每个英文单词的首字母大写组成的简称来命名

  • 针对以“private”关键字定义的类私有成员变量,建议以”m_“+变量描述的方式进行命名,变量描述遵循小驼峰命名方式,例如:m_demoVar,m_fileName等;
    注:为了代码的可靠性,类的成员变量必须都进行初始化。
  • 针对以“public”关键字定义的类公有成员变量,建议以”g_“+变量描述的方式进行命名,变量描述遵循小驼峰命名方式,例如:g_demoVar,g_filePath等;
  • 全局常量指的是在整个项目范围内都恒定不变的常量定义,对于这种类型的常量,建议名称用全英文大写,例如:
static const int VAR = 1;
  • 标识符(“宏名”):应该尽量用能够代表宏的含义的若干英文字符(或者缩写)来命名,且全部大写,如果宏对应的内容是字符串,则字符串内容与“宏名”内容一致,且字符小写,例如:
#define PI 3.14
#define LOGIN_STATUS_SUCCESS "login_status_success"

三、信号和槽

  • 所有信号函数以英文单词“signal”的首部(sig)+ 信号功能的英文单词的方式进行命名,例如:一个表示数据加载完成的信号可以写成:sigDataLoadFinishd();而一个表示文件打开成功的信号函数可以写成sigFileOpenSuccess()。
    【注】:在代码中发送某个信号时,建议统一加上关键字“emit”进行调用,例如:
    emit sigDataLoadFinishd();
  • 所有槽函数/事件处理函数函数以“on”+ 对应信号/事件的英文单词的方式进行命名,例如:一个表示数据加载完成信号的槽函数可以写成:onDataLoadFinishd();而一个表示处理指令发送事件的处理函数可以命名为:onCmdSendEvent()。

四、注释

  • 注释内容采用英文进行书写
  • 在头文件和代码文件的最上部分添加关于该文件的内容(主要是类)的说明性文字,主要包括:
    a)Project:文件所属工程名称
    b)Flie:当前文件名(建议与文件中定义的类类名保持一致)
    c)Spec:单词spectification缩写,该文件的主要功能
    文件说明的相关注释采用块注释(/* */)的格式,其具体格式规范如下图所示:
    在这里插入图片描述
  • 函数注释主要对函数的功能,以及参数及返回值等进行说明,注释位置写在代码文件函数定义位置的上方,采用块注释(/* */)的方式,注释内容主要包括:
    a)Class:函数所属类名
    b)Func:单词Function缩写,表示函数名
    c)Spec: 单词spectification缩写,函数功能说明
    d)Para:函数参数列表说明,存在多个参数时,每个参数占一行,以@参数名的方式进行说明
    e)Return:函数返回值
    其具体格式规范如下图所示:
    在这里插入图片描述
  • 变量注释主要对变量的功能,以及取值范围等相关进行说明,采用行注释的方式进行,其具体格式规范如下图所示:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74466.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux7层负载均衡-Haproxy

Linux7层负载均衡 概述: 是一款高性能的负载均衡软件。 因为其专注于负载均衡这一些事情, 因此与nginx比起来在负载均衡这件事情上做更好,更专业。 特点: •支持tcp / http 两种协议层的负载均衡,使得其负载均衡功能…

【KNN分类】基于模拟退火优化KNN、蝗虫算法优化KNN实现数据分类附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

web课程设计网页制作:基于html实现传统文化壁画手工艺带psd设计图(15页)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

【Day3】每日学Java--》详解java中的static成员

大家好,我是良辰丫,今天我和大家分享的是java中的static成员,static说难不难,说简单也不简单,主要是细节,很多情况下,你使用了static,却不知道为什么会报错,嘿嘿嘿&#…

【推免攻略】五.2022年北交计算机学院夏令营、预推免保研经验

欢迎订阅本专栏:《北交计算机保研经验》 订阅地址:https://blog.csdn.net/m0_38068876/category_10779337.html 【推免攻略】一.北交计算机学院夏令营、预推免攻略【推免攻略】二.联系导师的前期准备及注意事项【推免攻略】三.2020年北交计算机学院夏令营、预推免保研经验【推…

Java之网络编程

目录 1.1 概述 1.2 网络通信的要素 1.3 IP 1.4 端口 1.5 通信协议 1.6 TCP (1)消息发送 (2)文件上传 1.7 UDP (1)发短信 (2)聊天(循环发送-循环接收)…

ftp共享盘挂载——curlftpfs挂载FTP服务器

通过curlftpfs来将远程ftp某个目录映射到本地目录,可以达到多台机器共享同一目录的效果。我们是用它来共享脚本的。curlftpfs是通过yum本地源安装的,需要epel支持,需要提前弄好。 一、 安装FTP服务 在联网环境下安装epel yum -y install epel…

唯亚威FI-60光纤识别器

光纤识别器可以轻松地识别光信号,而无需断开光缆或中断网络交通。也可以转换为光功率计(OPM)。VIAVI FI-60 LFI能够使用户轻松检测光信号,而无需断开光缆或中断网络交通。FI-60 LFI还包括了独特的VIAVI SafeChekTM ,以…

精华推荐 |【深入浅出Spring原理及实战】「原理分析专题」从源码和架构设计角度深入剖析BeanPostProcessor的原理和运作机制

🍃 前提概要 Spring具有很好的扩展性,但是这个扩展它的这个扩展性体现在哪里呢?而我们要说的BeanPostProcessor就是对Spring扩展性优秀的表现之一。 🍃 BeanPostProcessor的作用 简单的说就是BeanPostProcessor提供了初始化前后回…

Qt扫盲-QString使用总结

QString使用总结一、概述二、初始化字符串1、极速版2、原理版三、操作字符串1、极速版1. 增加2. 删除3. 修改4. 插入5. 转换2、原理版四、查询字符串五、字符串格式转换六、Null 字符串和 Empty 字符串的区别七、字符串参数格式化八、更高效的字符串构造九、最大大小和出现内存…

疫情之下逆势进阶高级测试拿下20k,看我教你打一场翻盘局...

偶然跟同事交流工作、学习的时候,聊起了近况以及行业的变化,如果说回到三年前,疫情还未影响太深的时候,你会做什么? 本来当时是当玩笑话来问了,以为回答会是一注决定命运的彩票,正当我这样想时…

夏季出汗多中医如何调理

夏季出汗多是什么原因身体哪些方面出了问题?出汗多怎么办呢如何调理?夏季出汗看似是一种很正常的现象,但是如果说出汗过于多可能是身体出现了异常。夏季出汗多的主要原因是气虚,主要是补气固表。在夏天,由于天气炎热,人体出汗过…

随着多点 DMALL 全面 To B 转型

随着多点 DMALL 全面 To B 转型,为越来越多的 B 端客户提供零售全渠道解决方案,需要具备在多云部署环境下提供更具性价比、可复用的大数据底层基座和平台工具链。我们也终于等到了一个契机,彻底甩开历史包袱,设计搭建存算分离、轻…

Git安装和使用

1.工具:Git,下载链接:Releases git-for-windows/git GitHub 下载完成了之后可以看到再程序处可以或者鼠标右击可以看到三个东西,分别是: Git Bash:推荐使用,使用命令风格类似于Linux命令&am…

PyOpenGL安装

PyOpenGL安装 学校图形学大作业, 之前要求是MFC和C , 但是vs mfc c opengl的环境实在是配置的吐血了… 于是润来搞PyOpenGL玩一玩 参考网上经验贴做的 我新建了一个虚拟环境 下载whl文件 我的虚拟环境是python3.7,于是下载下面指出来的两个…

superset vs Tableau

superset the only thing i need to know is how to install superset. it’s difficult to install ?? https://superset.apache.org/docs/intro https://flask-appbuilder.readthedocs.io/en/latest/installation.html how to use superset ? superset is a modern …

Ubuntu下基于Anaconda3 配置任意版本tensorflow和opencv的通用方法

参考 Ubuntu下基于Anaconda3 配置任意版本tensorflow和opencv的通用方法 - 云社区 - 腾讯云 在Github上利用顶会上深度模型时经常会被tensorflow和opencv的版本问题困扰,比如博主最近遇到的需求: 安装更高的版本一般没问题,下面介绍一种配置…

MATLAB应用1——MATLAB傅里叶函数自行封装

主程序: % eximportdata(data3.txt); tx regexp(ex{1}, \s, split);%按照空格分隔字符串,成为单个cell yxstr2double(tx); plot(yx); wwyx(2500:9000)-2055; Fyz_fft(ww,1000); 傅里叶封装函数: function Fyz_fft(y,Fs) % Demon: % Fs 128; …