先声明类,然后再定义类。
在声明之后,定义之前,这一段时空内使用这个类,只能通过指针或者引用,目前它的状态是不完全类型状态。
不完全类型只能以有限方式使用。
例如:
class A;
class B{
private:
A* m_a; (不能用 A m_a)
}
class A {
...
}
前向声明的好处:
不必要的#include,会增加编译时间。
混乱随意的#include可能导致循环#include。
先声明类,然后再定义类。
在声明之后,定义之前,这一段时空内使用这个类,只能通过指针或者引用,目前它的状态是不完全类型状态。
不完全类型只能以有限方式使用。
例如:
class A;
class B{
private:
A* m_a; (不能用 A m_a)
}
class A {
...
}
前向声明的好处:
不必要的#include,会增加编译时间。
混乱随意的#include可能导致循环#include。