【发布时间】:2017-06-24 03:20:24
【问题描述】:
我有一些关于 UE4 开发的入门课程,我有一个关于 UE4 中 C++ 使用的问题。
我正在做一个创建基本职位报告者的教程。
下面是GetOwner()的peek定义。
FORCEINLINE_DEBUGGABLE class AActor* UActorComponent::GetOwner() const
{
// During undo/redo the cached owner is unreliable so just used GetTypedOuter
if (bCanUseCachedOwner)
{
checkSlow(OwnerPrivate == GetTypedOuter<AActor>()); // verify cached value is correct
return OwnerPrivate;
}
else
{
return GetTypedOuter<AActor>();
}
有人能告诉我下面这行到底在做什么吗?
class AActor*是不是在抢AActor的内存地址?或者它是在创建一个指针?
我知道指针的基础知识(指向某事物的内存地址的指针 POINTS,可以取消引用),只是无法围绕本节来思考。
FORCEINLINE_DEBUGGABLE class AActor* UActorComponent::GetOwner() const
我在 UE4 源代码的各个部分(例如 UObjectBase)中看到了很多这样的内容,所以我试图弄清楚这些。
UObjectBase::UObjectBase(UClass* InClass, EObjectFlags InFlags, EInternalObjectFlags InInternalFlags, UObject *InOuter, FName InName)
: ObjectFlags (InFlags)
, InternalIndex (INDEX_NONE)
, ClassPrivate (InClass)
, OuterPrivate (InOuter)
{
check(ClassPrivate);
// Add to global table.
AddObject(InName, InInternalFlags);
}
【问题讨论】:
-
只是返回值定义。该函数返回一个指向
AActor类型对象的指针
标签: c++ pointers unreal-engine4