GENERATED_BODY() 与 GENERATED_UCLASS_BODY() 是GamePlay框架 GameMode 类下的宏
这两个宏都封装了构造函数相关的内容
VS2017后都直接使用 GENERATED_BODY()
之前的版本都是使用 GENERATED_UCLASS_BODY()
首先为什么有两个宏定义的区别,主要是考虑到,继承父类之后,在于是否需要对父类的东西有所改动,构造函数的初始化亦是如此。
区别:
GENERATED_BODY():
如果定义的是GENERATED_BODY(),那么意味着我不需要使用父类的构造函数,也就是说,我不能直接使用父类的声明,但是,我需要去实现的时候,我就必须自己去声明,否则就会报错,然后就可以在CPP中实现自己声明的这个构造函数。
总结:属于新版本的宏,不生成构造函数,如果需要自定义,需要自己声明并定义,之后成员是private。
GENERATED_UCLASS_BODY():
如果定义的是GENERATED_UCLASS_BODY(),那么意味着我使用父类的构造函数,也就是说,我不需要为自己声明构造函数,直接去实现父类声明那个构造函数,那么在CPP文件中去实现,而不需要在H里面去声明。
总结:属于之前版本的宏,自动生成带有指定参数的构造函数,不用用户再头文件中生明构造函数,需要在CPP中实现,否则报错,之后成员是public。