最近学习C++,对前向声明不是很明白,所以查了很多资料终于搞懂,在此分享一下。
首先要明白:
1.C++中类必须先定义,才能够实例化。
2.两个类需要相互引用形成一个“环形”引用时,无法先定义使用。这时候需要用到前向声明 。
3.前向声明的类不能实例化。
第一种办法:
A.h文件
A.cpp文件
B.h文件
B.cpp文件
这种方法只能是在A.h中用到B类,那么就包含B类的头文件,这样可以!如果同时在B.h中用到A类,包含A类的头文件时,编译不通过,因为形成环形引用。
第二种方法,即前向声明
A.h文件
A.cpp文件
B.h文件
B.cpp文件