本篇文章純屬筆記,記錄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。