前向声明
在计算机程序设计中, 前向声明是指声明标识符(表示编程的实体,如数据类型、变量、函数)时还没有给出完整的定义。即可以声明一个类而不定义它,只声明类但不知道类的成员变量、函数等具体细节。
如:
class B; class A { private: int id; ...... public: bool test(int id, B* b); };
这里的class B只有声明没有定义,是一个不完全类型(incomplete type)。它的作用比较有限,不能定义类B的对象,但是可以定义类B的指针或引用,也可以作为函数的形参或返回类型。
相比include,前向声明可以解决类的相互包含引用问题,加快编译速度。
原文:http://www.cnblogs.com/waimai/p/3875692.html