本篇文章纯属笔记,记录UE4里CPP的一些用法、区别、原理和最佳实践等。
1. .generated.h
当声明的类型需要反射(需要UCLASS(), USTRUCT()等等)时,需要在头文件包含这个文件,UHT在分析头文件内容的时候会生成相应的反射代码。
2. MODULENAME_API
这个声明在class后的宏是负责由UBT分析,然后生成DLL的时候,将当前模块的类导出给其他模块使用,如果你明确不需要导出给其他模块使用,那么不需要这个宏。
3. GENERATED_BODY() vs GENERATED_UCLASS_BODY()
后者是比较旧的版本引擎才使用的,现在一般不论是UCLASS还是USTRUCT都推荐使用前者。还有一个区别,前者是不自动包含public的,所有在下面的成员都是private,所以一般都会先在开头写上宏,然后后面立马加上public。