C++前置声明的几种方式

C++的前置声明可以避免编译依赖,以此可以增加编译速度。同时可以隐藏实现细节,令接口更加简洁。

那么C++中可以有哪些前置声明的方式呢?

  1. 声明全局作用域中类型的名字
  2. 声明命名空间中类型的名字
  3. 声明模板类型名字

当然,还有函数的前置声明,但函数声明太过于常见就不列举。

注意,我没有找到内嵌类型的前置声明方法,也就是对于这样的类型:

class Foo
{
	class SubFoo {};
};

还没有办法去前置声明Foo::SubFoo

下面列举一下前置声明的代码:

class Foo;					// 前置声明全局作用域中的类型名字
struct Bar;

namespace Proto
{
	class SCFoo;			// 声明命名空间中的类型名字
}

template<typename T> class Goo; // 声明一个模板类型名字
原文地址:https://www.cnblogs.com/demon90s/p/15606681.html