欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    (完整)C++编码规范.docx

    • 资源ID:477993       资源大小:66.34KB        全文页数:22页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    (完整)C++编码规范.docx

    1 .命名规则1.1. 起个合适的名字1.1.1. 类的名称(适用于C+)2 类的名称要能告诉我们,这个类是什么。因此,类的名称通常是名词.3 类的名字不需要告诉我们,它从哪个类继承而来的。2有时候加个后缀是很有用的。比如类是一个代理(AgelTtS)时,起名叫DownIOadAgent更能表达真实的意图。1.1.2.方法和函数的名称(适用于C/C+)2方法和函数通常都要执行某种行为,因此,名称要能清楚的说明它做什么:CheckForErrors()而不是ErrOrCheCk(),DumpDataToFiIe()而不是DataFiIeOo这样也可以很容易的区别函数和数据。2函数名总以动词开头,后面跟随其它名称。这样看起来更自然些。2可以加一些必要的后缀:Max-表示取最大值Cnt-表示当前的计数值Key-表示键值例如:RetryMax表示可接收的最大数,RetryCnt表示当前接收的数量.2前缀也同样有用:Is-用于询问一些问题。只要看到IS开头,就知道这是一个查询.Get-用于获取一个值。Set-用于设置一个值。例如:ISHitRetryLimit.1.1.3.含有度量单住的名称(适用于C/C+)2如果一个变量用于表示时间,重量或其它度量单位,应把度量单位添加到名称中,以便开发人员更早一步发现问题。例如:uint32mTimeoutMsecs;uint32RiMyWeightLbs;1.1.4.缩写名称不要全部大写(适用于C/C+)2无论是什么缩写名称,我们总以一个大写字母开头,后面跟随的字母全部用小写。例如:classFIuidOz;/而不是FIuidOZcIassNetworkAbcKey;/而不是NetworkABCKey1.2.类的命名(适用于C+)2用大写字母作为单词的分隔,每个单词的首字母大写,其它字母均小写。2名字的第一个字母应大写2不含有下划线()例如:classNameOneTwo;cIassName;1.3.类库(或程序库)命名(适用于C/C+)2使用命名空间防止名字冲突.2如果编译器没有实现命名空间,需要用前缀来避名名字冲突,不过前缀不要过长(2个字母比较好)。例如:JohnJohnson完成了一个数据结构的库,它可以使用JJ作为库的前缀,所以类名就象下面这样:classJJLinkList()1.4o方法和函数的命名(适用于C+)2使用与类名相同的规则例如:cIassNameOneTwo(pubIic:intDoItO;voidHandIeError();)1.5o类属性的命名(适用于C+)2属性(通常是非公有数据成员)名字以字母'm'开头.2在'm(mj'后面,使用与类名相同的规则。2,m(mj,总是位于其它修饰符(如表示指针的'p')的前面。例如:cIassNameOneTwopubIic:intVarAbcO;intErrorNumber();private:intmVarAbc;intmErrorNumber;String*mpName:1.6o方法和函数参数的命名(适用于C+)2第一个字母必须小写。2第一个字母后面的单词使用与类名相同的规则.例如:cIassNameOneTwo(pubIic:intStartYourEngines(Engine&rSomeEngine,Engine&rAnotherEngine);)1.7o局部变量的命名(适用于CC+)2所有字母都用小写2使用下划线'作为单词的分隔.例如:intNameOneTwo::HandIeError(interrorNumber)(interror=OsErr();Timetime_of_error;ErrorProcessorerror_processor;11.8o指针变量的命名前缀(适用于C/C+)2指针变量多数情况应在前面加,p,o2星号应靠近类型,而不是变量名。例如:String*pName=newString;特别的:String*pName,name;应分成两行来写:String*pName;Stringname;1.9o引用变量和返回引用函数的命名前缀(适用于C+)2引用必须用产作前缀修饰。例如:classTest(pubIic:voidDoSomething(StatusInfo&rStatus);StatusInfo&rStatus();ConstStatusInfoSStatus()const;/这里返回的是常量引用,所以不符合本规则private:StatusInfo&mrStatus;)1.10o全局变量的命名前缀(适用于C/C+)2全局变量总是以,g(gj,作为前缀。例如:1.oggerg_Log;1.ogger*g_pLog:1.11.全局常量的命名(适用于C/C+)2全局常量全部大写,并以下划线'分隔单词。例如:constintA_GLOBAL_CONSTANT=5;1.12.静态变量的命名前缀(适用于C+)2静态变量以s'作为前缀。例如:classTestpubIic:private:StaticStatusInfom_sStatus;)1.13.自定义类型(typedef)的命名(适用于CC)2类型定义名称指的是用typedef定义的名称.2类型定义名称使用与类名相同的规则,并使用TyPe作为后缀.例如:typedefuint16ModuIeType;typedefuint32SystemType;1.14.宏定义的命名(适用于C/C+)2所有单词的字母都用大写,并使用下划线分隔.例如:#defineMAX(a,b)blah#defineIS_ERR(err)bIah1.15.C函数的命名(适用于C/C+)2c+项目中,应尽量少用c函数.2C函数使用GNU规范,所有字母都使用小写,并用下划线'作为单词的分隔。例如:intsome_bIoody_function()特别的,为了赚容C/C+,在必要的时候,在C+中应以下面的格式定义C函数:extern"C"intsome_bIoody_function();2或在CC+中推荐使用下面的格式:# ifdef_cpIuspIus_extern"C”#endifintsome_bIoody_function()()# ifdef_cpIuspIus_)# endif1.16o枚举的命名(适用于CC+)2所有字母都大写,并用下划线'作为单词分隔。例如:enumPinStateType(PIN_OFF,PIN_ON:enumSTATE_ERR,STATE_OPEN,STATE_RUNNING,STATE-DYING;2. 排版规则2.1. 布局和模板2.1.1. 类的布局模板(适用于C+)2请使用下面的模板来创建一个新的类:/* 用一行来描述类* #include”XX.h”<BR>*IIib*类的详细说明*SeeSOmething*/# ifndefSORUTION_PROJECT_CLASSNAME_H# defineSORUTION_PROJECT_CLASSNAME_H/在这里包含系统头文件/在这里包含项目头文件/在这里包含局部头文件/在这里放置前置引用/classXXpubIic:/类的生命周期控制函数,如构造和析构,以及状态机/*Defaultconstructoro*/XX(void);*Copyconstructor.*paramfromThevaIuetocopytothisobject.*/XX(constXX&from);*Destructoro*/virtuaIXX(void);/在这里放置类的运算操作符*Assignmentoperator.*paramfromTHevaIuetoassigntothisobject.*returnAreferencetothisobject.*/XX&operator=(XX&from);/在这里放置类的操作/在这里放置属性存取/在这里放置类的状态查询protected:private:1;/内联方法定义/夕卜部弓I用/#endif/SORUTI0N_PR0JECT_CLASSNAME_H2定义的顺序是:pubIic,protected,private2要清楚pubIic/protected/private都应该放置哪些东西2.1.2. 源文件格式(适用于C+)#include”XX。h"/classimpIemented/PUBLIC/*勺,土/攵XX::XX()(/XXXX:XX(constXX&)(/XXXX:XXO()/xx/操作¼=XX&XX:operator=(XX&);return *this;)/=/=类的操作/二二二二二二二二二二二二属性存取/二二二=二=二二二=二月Fio/PROTECTED/PRIVATE/2.1.3. 保护头文件不被重复包含(适用于C/C+)2应使用宏定义来保护头文件不被重复包含:#ifndefSORUTION_PROJECT_CLASSNAME_H#defineSORUTION_PROJECT_CLASSNAME_H#endif/SORUTION_PROJECT_CLASSNAME_H2如果使用命名空间的时候,要把命名空间加到文件名前面:#ifndefSORUTION_PROJECT_NAMESPACE_CLASSNAME_H#defineSORUTION_PROJECT_NAMESPACE_CLASSNAME_H#endif2.1.4o方法和函数的布局(适用于C/C+)2对于有较多参数的函数的写法如果参数较多,一行写不下,我们应该分成几行来写,并且每个参数都另起一行对齐:intAnyMethod(arg1,arg2,arg3,arg4);或i nt AnyMethod( i ntarg1i ntarg2intintarg3arg4);2.2.缩进、制表符以及空格(适用于C/C+)2缩进的时候,每一层缩进3,4,或8个空格。(推荐使用4个空格)2不要使用TAB,用空格,大多数编辑器可以用空格代替TAB。TAB应固定4个空格,因为大多数编辑器都是这么设

    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

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

    收起
    展开