UE4类运算符布尔()重载

UE4 class Operator bool() overload

本文关键字:重载 布尔 运算符 UE4      更新时间:2023-10-16

当我在这里学习教程时UE4基础知识我注意到在CollidingPawn.cpp

if语句以对象if (OurMovementComponent && ...){...}为条件

声明并定义为

class UCollidingPawnMovementComponent* OurMovementComponent;
//...
class HOWTO_COMPONENTS_API UCollidingPawnMovementComponent : public UPawnMovementComponent
{/* ... */};

我认为这个类有一个重载的((运算符,然后我追溯到它的所有父类,但我找不到一个,所以我想知道if语句在这里检查了什么,以及它是如何定义的。

OurMovementComponent被定义为指针。所有指针都可以在条件语句中进行测试,而不管它们的指针类型是否具有重载的operator bool

当涉及到指向基本类型和类类型的指针时,它们之间没有区别。

if语句检查指针是否为空,可能是在访问它应该指向的对象之前,以避免未定义的行为。