Google C++编程规范 1.2
来源:互联网 发布:扬子石化热电厂优化 编辑:程序博客网 时间:2024/04/28 15:03
头文件依赖
当前向声明可满足使用的情况下不要使用#include
你包含一个头文件意味引入一个依赖,当头文件发生改变时,你的源代码文件必须重新编译。如果你的头文件包含其他头文件,其他的头文件发生任何一点改变,你源代码文件必须重新编译,因此我们应选择最小依赖,特别是头文件包含其他头文件时。
在你需要包含你自己定义的头文件时使用前向声明,你能减少一大堆头文件。比如说,你的头文件使用File类而不需要访问File类的声明,你只需要在头文件中前向声明class File,而不是使用#include “file/base/file.h”。
怎样才能在头文件中使用class Foo而访问其定义?
我们可以将Foo类型的成员变量声明为指针Foo*或引用Foo&
我们可以声明(不是定义)类型Foo为函数的参数和返回值(例外:如果参数Foo或const Foo&有一个noo-explicit,单参构造函数,在这种情况下我们需要Foo的定义以支持自动类型转换。)
我们可以声明Foo类型的static成员变量。这是因为static成员变量定义在class外部。
在别的情况下,如你定义Foo的子类或拥有一个Foo数据成员,你必须包含Foo的头文件。
当然.cc文件需要classes的定义,通常情况下会包含几个头文件。
注意:
如果在你的源文件中使用Foo,你应该自己引进Foo的定义,或通过#include和前向声明。不要依赖已经包含了Foo定义的其他头文件。例外:如果Foo已经在myfile.cc中使用,使用#include或前向声明包含myfile.h而不包含myfile.cc。
- Google C++编程规范 1.2
- Google 编程规范1.2
- google C++ 编程规范
- google C++ 编程规范
- google C++ 编程规范
- Google java 编程规范
- Google C++ 编程规范
- Google C++ 编程规范
- Google编程规范(转)
- Google Java编程规范
- Google C++编程规范
- Google编程规范笔记
- google编程规范
- google 编程规范
- Google Java编程规范
- Google java编程规范
- Google C++编程规范
- google c++ styles和华为C语言编程规范总结
- ArcGIS Runtime SDK for iOS开发介绍
- 如何在python使用图片处理模块?
- Mysql中判断一个点是否落在多边形内。
- 使用dx9渲染的一个找不到函数代码的问题
- BI 工具
- Google C++编程规范 1.2
- 此文件来自其他计算机,可能被阻止以帮助保护该计算机
- 宿主机通过SSH访问虚拟机中的Linux系统
- 【Android】解决File中文名字问题
- android 下载更新操作封装
- 今天开始
- js实现校验字符串中是否含有特殊的字符
- D3D_DRIVER_TYPE_REFERENCE
- 【hadoop学习】Hadoop配置