C++的一些编程规范(基于google)
来源:互联网 发布:幼儿弱视训练软件 编辑:程序博客网 时间:2024/06/04 23:20
1.所有头文件都应该使用#define 防止头文件被多重包含,命名格式可以参考<PROJECT>_<PATH>_<FILE>_H
2.使用前置声明尽量减少.h文件中#include的数量,导致不必要的重新编译
详解:http://blog.csdn.net/justkong/article/details/9388733
3.函数参数:输入参数在前,输出参数在后。输入参数一般传值或常数引用,输出参数或输入输出参数为非常数指针。
4. .cpp头文件包含顺序
同名头文件
C系统文件
C++系统文件
其它库头文件
本项目内其它头文件
5.命名空间
(1)分为有名和无名的命名空间
(2)不能在命名空间的定义中声明子命名空间,不能在命名空间外使用"命名空间::子命名空间{}"的形式为子命名空间添加新成员。
a. namespace A
{
namespace B; //error
}
b. namespaceA{}
A::B{}; //error
namespaceA{
namespace B{} //right
}
(3)using指令和using声明
using指令:using namespace A; //整个命名空间中的所有成员都可直接使用
using声明:using A::成员名 //只声明特定的成员
(4)一般来说,使用using声明会更安全。因为,using声明只导入指定的名称,如果该名称与局部名称发生冲突,编译器会报错。而using指令导入整个命名空间中的所有成员的名称,包括那些可能根本用不到的名称,如果其中有名称与局部名称发生冲突,则编译器并不会发出任何警告信息,而只是用局部名去自动覆盖命名空间中的同名成员。特别是命名空间的开放性,使得一个命名空间的成员,可能分散在多个地方,程序员难以准确知道,别人到底为该命名空间添加了哪些名称。
(5)可以为命名空间定义别名
namespace 别名 = 命名空间名; //方便使用
6.局部变量
提倡在尽可能小的作用域中声明变量,离第一次使用越近越好,在声明变量时将其初始化
7.类中成员声明次序
(1)public,protected,private
(2)typedefs和enums
常量
构造函数
析构函数
成员函数
数据成员
8.使用C++的类型转换代替C语言的类型转换
(1)static_cast:和C风格转换相似可做值的强制转换,或者指针的子类到父类的明确的向上转换
(2)const_cast:移除const属性
(3)reinterpret_cast:指针类型和整形,或者其他指针间不安全的转换,仅在你对你所做的一切了然于心时使用
(4)dynamic_cast:运行时类型检查,指针的父类到子类的转换
详见http://blog.csdn.net/justkong/article/details/8044662
9.使用前置自增代替后置自增,后置自增要多一次拷贝
10.尽可能多的使用const
- C++的一些编程规范(基于google)
- 一些编程的规范
- Google 的 Java 编程规范
- google C/C++编程风格的一些摘要
- C#的一些编程规范
- 编程规范的一些小事
- Google的Objective-C编码规范
- Google的Objective-C编码规范
- Google的Objective-C编码规范
- Google的Objective-C编码规范
- Google的Objective-C编码规范
- Google的Objective-C编码规范
- Google 的 Objective-C 代码规范指南
- Google 的 Objective-C 代码规范指南
- Google 的 Objective-C 代码规范指南
- Google的Objective-C编码规范
- Google的Objective-C编码规范
- C/C++的一些编程规范(高质量C++编程笔记)
- opencv c++接口矩阵运算
- 看错行数与列数的输入顺序而RE
- Gridx 显示控件故障一例
- Halcon学习(二十五)if、switch和try
- ARM内核全解析,从ARM7,ARM9到Cortex-A7,A8,A9,A12,A15到Cortex-A53,A57
- C++的一些编程规范(基于google)
- Halcon学习(二十六)dev_get_preferences的用法
- 'SafeUnicode' object has no attribute 'status_code'
- java--封装浅谈
- 代码设置EditText只输入数字、字母
- hdu 1875 畅通工程再续 (kruskal算法+并查集)
- 《C++程序设计语言》摘要
- HDU——1227(经典DP)
- 输入阻抗和输出阻抗小结