【发布时间】:2020-08-27 17:02:26
【问题描述】:
我在 ue4 c++ 中创建了一个函数指针,但不知道我可以/应该将哪个宏用于头文件中的指针。 (像 UPROPERTY() 或 UFUNCTION() 之类的东西)
为什么我什至想使用宏?由于垃圾收集,据我所知,gb 仅在变量/函数具有宏时才有效。
顺便说一句,函数指针调用和普通函数调用一样高效吗?
header.h 代码:
typedef void (AWeaponGun::*FireTypeFunctionPtr)(void);
FireTypeFunctionPtr PtrFireType;
UFUNCTION()
void FireLineTrace();
file.cpp 代码:
void AWeaponGun::BeginPlay()
{
PtrFireType = &AWeaponGun::FireLineTrace;
}
void AWeaponGun::Tick(float DeltaTime)
{
(this->*PtrFireType)();
}
【问题讨论】:
-
您不需要使用任何带有函数指针的宏。但是,如果您想要某种智能函数指针,当它的目标所有者被删除时可以自行为空,那么您可能需要查看delegates(将它们绑定到 uobjects 或通过共享指针具有这种行为)。
标签: c++ unreal-engine4