Cpp编程规范

7、如果函数的参数或者返回值是对象,则尽量使用引用,而不是值传递。

比如,使用myMethod(const SomeClass & object),而不是myMethod(SomeClass object)

原因:1)性能。值传递总是使用拷贝构造函数创建临时变量并在函数退出时销毁该对象。

   2)以基类类型的对象传递继承类对象时,会导致内容截断。

8、应该避免使用可变参数列表

可变参数列表禁用了C++强大的类型检查机制;会带来类型匹配方面的问题。

很多时候,可变参数列表可以使用“函数重载”或者“默认参数”来代替

9、使用new和delete,而不是malloc,realloc,free。

一方面是保持代码风格的一致性,另一方面new和delete才可以安全的分配内存

10、如果类有动态分配的内存,那么应该为类定义拷贝构造函数和赋值运算符函数。

因为类的这俩默认函数不会动态分配内存,而只是拷贝指针神马的。

14、大作用域的变量应该使用长名字,短作用域的变量应该使用短名字。

25、迭代变量应该使用i,j,k等字母。j,k只应该出现在嵌套循环中。

时间: 2024-10-12 13:15:52

Cpp编程规范的相关文章

C++必备基础知识和编程规范

C语言是面向过程的程序设计,强调程序的执行顺序,自上而下,而C++是面向对象的程序设计,将程序看做多个对象组成,每个对象有自己的属性(变量)和行为(函数). 2.属性是描述对象特征的数据,行为是对象能进行的操作,如英雄联盟里每一个英雄都有自己的属性(生命值,法力值,防御力,攻击力)和行为(普通攻击,施放技能QWER). C++编程规范: 类名第一个单词大写,数据成员和变量小写: 成员函数第二个单词首字母大写: 成员函数类外定义,类内声明: Set和构造函数的参数与数据同名,用this访问: 一.

华为C语言编程规范

DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd.版权所有 侵权必究All rights reserved密级:confidentiality levelDKBA 2826-2011.52011-06-02 华为机密,未经许可不得扩散 Huawei Confidential 第2页,共61页Page 2 , Total61修订声明Revision

Windows客户端C/C++编程规范“建议”——函数

1 函数 1.1 代码行数控制在80行及以内 等级:[要求] 说明:每个函数的代码行数控制应该控制在80行以内.如果超过这个限制函数内部逻辑一般可以拆分.如果试图超过这个标准,请列出理由.但理由不包含如下: 无法拆分. 流程内部逻辑复杂,无需拆分,即使拆分了,拆分的函数也不会被其他地方用到.(解释:拆分可以减少代码行数,提炼后的函数可以方便读者快速理解函数逻辑并定位问题.) 1.2 代码列数控制在100字符及以内 等级:[要求] 说明:每行代码不可以超过100字符.如果超过这个字符数,代码的美观

Windows客户端C/C++编程规范“建议”——指针

2 指针 2.1 尽量使用智能指针 等级:[推荐] 说明:正确使用智能指针可以省去指针管理的工作. 2.2 类成员变量指针释放后一定要置空 等级:[必须] 说明:如果类成员变量指针在释放后没有置空,将出现如下问题: a) 无法判断指针是否已经是野指针 b) Dump分析很难发现是野指针函数调用导致崩溃 2.3 正确使用delete和delete[] 等级:[必须] 说明:delete[]用于释放动态分配的数组,而delete用于释放对象.两者不可以混用. 2.4 使用指针前要判空 等级:[必须]

Windows客户端C/C++编程规范“建议”——函数调用

3 函数调用 3.1 谨慎使用递归方法 等级:[推荐] 说明:递归方式控制不当,可能会导致栈空间不够而崩溃.一般的递归都可以使用循环代替. 3.2 不要使用using namespace 等级:[必须] 说明:这是曾经教科书上的一种写法,但是该方法存在严重的缺陷.因为如果多个不同的namespace里定义了相同名字的变量或者函数.将导致无法预知和理解编译器最终使用的是哪个命名空间中的数据. 例子: //file1 namespace Space1{ int g_Private = 0; }; /

[转载]通达信插件选股(基于通达信插件编程规范的简单分析)

[转载]通达信插件选股(基于通达信插件编程规范的简单分析) 原文地址:通达信插件选股(基于通达信插件编程规范的简单分析)作者:哈尔滨猫猫 首先声明,鄙人是编程人员,不是股民.对选股概念了解甚少.本文仅作编程人员学习借鉴之用.不对选股理论进行探讨和解释. 以前有客户找我做过通达信插件选股的小任务,当时第一次接触面向接口(此类“接口”)编程,也是第一次接触到股票里相关的概念.最近由于接手一个任务,与上次开发相类似,故旧事重提,仔细研究一番.将个人学习研究所得知识与大家分享.在网上搜相关资料,可用的.

最佳11个PHP编程规范

个人原创网址:http://www.phpthinking.com/archives/375 从设计之初,PHP被广泛用于开发基于Web的应用程序. 由于PHP是一种脚本语言,开发的时候必须遵守一些规范. 本文将讨论常用的良好的代码习惯,或者称为代码规范,在PHP领域. 1,错误报告开启 错误报告是在PHP中一个非常有用的功能,应同时在开发阶段启用. 这可以帮助我们确定我们的代码中的问题. 最常用的功能是"E_ALL",这有助于我们发现所有的警告和严重错误. 必须指出的是,我们把我们的

对Google C++编程规范的理解和实践

1. #define保护 所有头文件都应该使用#define 防止头文件被多重包含(multiple  inclusion),命名格式为: <PROJECT>_<PATH>_<FILE>_H_ 为保证唯一性,头文件的命名应基于其所在项目源代码树的全路径.例如,项目foo 中的头文件 foo/src/bar/baz.h按如下方式保护: #ifndef FOO_BAR_BAZ_H_ #define FOO_BAR_BAZ_H_ ... #endif // FOO_BAR_B

多线程编程规范

规则1    指定线程名  用于查看线程信息 规则2    使用Thread对象的setUncaughtExceptionHandler方法注册Runtime异常的处理者(v1.5+) 说明:Java多线程程序中,所有线程都不允许抛出未捕获的checked exception,也就是说各个线程需要自己把自己的checked exception处理掉.但是无法避免的是unchecked exception,也就是RuntimeException,当抛出异常时子线程会结束,但主线程不会知道,因为主线