欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C++代码规范及详解.docx

    • 资源ID:69847381       资源大小:192.91KB        全文页数:6页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++代码规范及详解.docx

    编程规范1、文件结构(1)、头文件注释需要有版权信息、类名称、版本信息、日期、作者、类职责。(2)、头文件需要用ifndef和define,防止重复包含。(3)、尽量使用前向声明。(4)、头文件包含应先包含系统文件、再包含自定义文件。(5)、文件组织方式应该遵循文件包含、宏、全局变量和静态成员变量顺序。2、标识符(1)、标识符应表示出含义,如果是变量,类的成员和全局变量,还要表示出类型、作用域和含义。命名尽量采用“名词”或者“形容词” + “名词”格式。命名格式采用匈牙利命名法。(2)、变量必须初始化。(3)、指针必须初始化为nullptr,使用时必须判空,释放后必须置空,防止野指针。(4)、判断二时常量放在左边。3、代码规范(1)、采用Tab键来缩进,每嵌套一级缩进一个Tab, “ ”需保持缩进对齐。(2)、头文件和实现文件中函数之间需要空行。(3)、一行代码只做一件事。(4)、关键字后跟一个空格。(5)、函数名之后不加空格。(6)、操作符前后加空格(除+、-、&、!、外)。(7)、长行拆分。(8)、表达式以“()”表示优先级。(9)、一个函数内局部变量赋值等号对齐(Tab对齐)。4、类(1)、包含指针类型的需实现赋值操作符和拷贝构造函数。(2)、分配和释放空间必须成对出现(QObject子类设置了父对象的不用)。(3)、成员初始化顺序应和成员声明顺序保持一致。(4)、尽可能使用初始化列表来初始化成员变量。(5)、尽量防止使用静态成员变量和全局变量降低耦合。(6)、非POD结构不要用memset初始化对象。(7)、尽量多用组合,少用继承。(8)、数据结构体必须加构造函数。5、函数(1)、添加注释,包括概述、返回值、参数(接口必写,内部关键函数必写)。(2)、函数功能尽量单一。(3)、函数命名用全称,首字母小写,多个单词组合的采用驼峰式命名。(4)、函数声明中参数名称不可省略。(5)、参数顺序以先传入类型,后返回类型。(6)、函数实参传递过程中防止无意义的临时变量(尽量用常量引用和引用,引用是需耍修改原值)。(7)、函数尽量短小、易懂,尽量保持200行以内。(8)、函数只能有一个返回路径。(9)、尽量设计少调用其他函数,多被其它函数调用的函数。(10)、尽量防止递归调用。(12)、函数返回值时防止临时先用局部变量暂存数据再返回。(13)、函数形参多的尽量给默认值,默认值放到后面。6、其它(1)、硬编码字符串必须加tr。(2)、编码过程中不能出现警告。(3)、不要使用C风格的强制类型转换操作。编程规范4、文件结构(1)、头文件注释需要有版权信息、类名称、版本信息、日期、作者、类职责。* version : 1. 0* Copyright : Copyright (c) 2017,北京亚控科技开展有限公包.* fi 1 cnamc : Codel'orni. h* L* 'version: 1.0* anlIior:change:* 2.0* eiuthor:chcinge:* author:W A P* contcict:iiserc()nipciriy. com,1* bricf :* note :*(2)、头文件需要用ifndef和define,防止重复包含。pifndef CodeForm_h_#define CodeForm_h#endif / CodeFormh(3)、尽量使用前向声明。(4)、头文件包含应先包含系统文件、再包含自定义文件。(5)、文件组织方式应该遵循文件包含、宏、全局变量和静态成员变量顺序。5、标识符(1)、标识符应表示出含义,如果是变量,类的成员和全局变量,还要表示出类型、作用域和含义。命名尽量采用“名词”或者“形容词” + “名词”格式。命名格式采用匈牙利命名法。前缀类型描述例子g_Global Variableg_Serversm_Member variablem_pDocchchar8-bit characterchGradebBOOLBoolean valuebEnablednintInteger (size dependent on operating system)nLengthnUINTUnsigned value (size dependent on operating system)nLengthwWORD16-bit unsigned valuewPos1LONG32-bit signed integer1 OffsetdwDWORD32-bit unsigned integerdwRangeP*pointerpDoceEnumerate value variableIpszLPSTR32-bit pointer to character stringIpszNameIpfn(*fn)()callbackFar pointer to CALLBACK functionIpfnAbortszNullTerminated Stringchar szNameNAME LEN;strC+ Stringstring strFirstName;ptCPointPoint class objectmapmapmapUserlistlistsstaticsTeststrustructconstconstvecvectorVector class object(2)、变量必须初始化。(3)、指针必须初始化为nullptr,使用时必须判空,释放后必须置空,防止野指针。(1)、采用Tab键来缩进,每嵌套一级缩进一个Tab, “ ”需保持缩进对齐。(2)、头文件和实现文件中函数之间需要空行。(3)、一行代码只做一件事。int nWidth = 1;int nHeight = 1;|(4)、关键字后跟一个空格。for (int nldx = 0; nldx < 100; +nldx)if (nullptr 二二 pPointer)(5)、函数名之后不加空格。inline void add(const int& nParal, const int& nPara2);(6)、操作符前后加空格(除+、一、&、!、外)。strResult +二 strParameter;(7)、长行拆分。|if (m二匹:onfig.Rg£Q£dState & PRINTER_ALARM) 0)&& (ni pConfig. RecordState & DB ALARM) <= 0)&& (m_pConf£g. RecordState & PRTNTER_ENTER) 0)&& (m_pConfig. RecordState & DB_ENTER)二 0)&& (in pConfig. RecordState & PRINTER OPERATC) <= 0)&& (m_pConfig. RecordState & DB_OPERATE) <= 0)(9)、一个函数内局部变量赋值等号对齐(Tab对齐)。7、类(1)、包含指针类型的需实现构造函数、赋值操作符、拷贝构造函数、析构函数。class Stringpub lie:String (const char* str = NULL);默认构造函数String(const String &other);拷贝构造函数Stringfe operator= (const Stringfe other);赋值构造函数private:char用于保存字符串(2)、分配和释放空间必须成对出现(QObject子类设置了父对象的不用)。(3)、成员初始化顺序应和成员声明顺序保持一致。(4)、尽可能使用初始化列表来初始化成员变量。(5)、尽量防止使用静态成员变量和全局变量降低耦合。(6)、非POD结构不要用memset初始化对象。POD结构:将对象的各字节拷贝到一个字节数组中,然后再将它重新拷贝到原先的对象所占的存储区中, 此时该对象应该具有它原来的值。POD数据结构主要是兼容之前C结构,即破坏对象布局的就是非POD。(7)、尽量多用组合,少用继承。(8)、数据结构体必须加构造函数。typedef struct kvUserSecurityPropertylstd: vector<short> SecurityZonelDs;安全IXID集合shortPriorityLevel;优先级|kvUserSecurityProperty()kvUserSecurityPropertyfe operator =(const kvUserSecuri tyProperty& UserSecProperty)8、函数(1)、添加注释,包括概述、返回值、参数(接口必写,内部关键函数必写)。(2)、函数功能尽量单一。(3)、函数命名用全称,首字母小写,多个单词组合的采用驼峰式命名。void setEditorData(QWidget editor, const QModelIndex &index) const;(4)、函数声明中参数名称不可省略。(5)、参数顺序以先传入类型,后返回类型。int& nResult);void add(const int& nParal, const int& nPara2,(6)、函数实参传递过程中防止无意义的临时变量(尽量用常量引用和引用,引用是需要修改原值)。const CustomWi dgetfe obj2);CustomWidget add(const CustomWidgetfe objl,(7)、函数尽量短小、易懂,尽量保持200行以内。(8)、函数只能有一个返回路径。(9)、尽量设计少调用其他函数,多被其它函数调用的函数。(10)、尽量防止递归调用。(12)、函数返回值时防止临时先用局部变量暂存数据再返回。std:string testReturn () h b" bd return szBuff;防止std:string testReturn () hstd:string strResult(szBuff); return strResult;(13)、函数形参多的尽量给默认值,默认值放到后面。 9、其它(1)、硬编码字符串必须加tr。(2)、编码过程中不能出现警告。(3)、不要使用C风格的强制类型转换操作。使用 C+类型转换:dynamic_cast> static cast> const casto

    注意事项

    本文(C++代码规范及详解.docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开