前置声明
定义
所谓前置声明(forward declaration)是类, 函数和模板的纯粹声明, 没伴随着其定义....使用场景
头文件A包含另一个头文件B, 是为了引入在头文件A中使用的类, 函数, 结构体, 枚举或其他实体的声明....前置声明能够节省不必要的重新编译时间. #include使代码因为头文件中无关的改动而被重新编译多次.
缺点
前置声明隐藏关系, 头文件改动时, 用户代码会跳过必要的重新编译过程....前置声明可能会被库的后续更改所破坏. 前置声明函数或模板有时会妨碍头文件变动其API. 例如扩大参数类型, 加上自带默认参数的模板形参等....f(void*), 因为前置声明会隐藏类的依赖关系.