gpt4 book ai didi

c++ - 将 AActor 引用传递给嵌套对象

转载 作者:行者123 更新时间:2023-12-02 09:53:11 26 4
gpt4 key购买 nike

我想在嵌套对象中做一些 AActor 的逻辑,我需要通过引用传递这个actor以使其工作。不幸的是,我看不到在使用“&”时如何传递“this”的方法。有人可以解释一下发生了什么吗?

ATestActor.h

class UHelper;
UCLASS()
class PROJECT_API ATestActor : public AActor
{
GENERATED_BODY()

public:
ATestActor();

protected:
virtual void BeginPlay() override;

public:
virtual void Tick(float DeltaTime) override;

UPROPERTY()
UHelper* Helper;
};

UCLASS()
class PROJECT_API UHelper : public UObject
{
GENERATED_BODY()

public:
void Help(ATestActor* &TestActor)
{
// Do some stuff with testActor
}
};

ATestActor.cpp

//other stuff

void ATestActor::BeginPlay()
{
Super::BeginPlay();
Helper = NewObject<UHelper>();

//How can i pass "this" to the method?
//Helper->Help(&this);//incorrect
}

最佳答案

&this创建一个指向指针的指针。你的功能Help接受对指针的引用。调用Helper->Help(this);应该从 this 开始工作已经是一个指针,那么我们在调用 Help 时通过引用传递 ptr .
编辑:
其实我忘了thisprvalue expression prvalues 不能绑定(bind)到非 const 左值引用。
您可以执行以下操作来获得 this 的左值点。

auto* obj = this;
Helper->Help(obj);

关于c++ - 将 AActor 引用传递给嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62666166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com