forward declaration向前声明
主要作用是:减少编译的时间,增加运行效率,只包括你想要的。
用法是在头文件中,在类外,将没有定义的类型加上class关键字,进行向前声明,但是不是实际定义它,像是下面这样。
然后就能定义这个对象了
然后当你在其他文件调用这个的时候,需要引用这个头文件后,还需要进行声明他们需要的头文件
这样的好处是什么呢?
举个例子:
假如你有个武器的头文件,库存的头文件,战士的头文件
weapon.h
#include<mesh.h>
#include<BoxComponent.h>
#include<particle.h>
inventoryKit.h
#include<potion.h>
#include<medicine.h>
#include<weapon.h>//这里包括上了对于inventoryKit没有用的一些头文件
.
.
.
#include<mesh.h>
#include<BoxComponent.h>
#include<particle.h>
武器的文件里面包含了许多武器组件的头文件,然后库存想要调用武器的头文件,但是因为武器头文件包括太多东西,导致库存文件调用武器文件后导致编译时间边长,但是库存并不需要获取武器的组件,比如mesh,粒子效果等,所以我们可以将武器里面的其他组件进行向前编译,只在需要的文件里面添加进去需要的头文件,进行编译,这样就能做到减少编译时间