UE4类运算符bool()重载

时间:2018-07-29 05:21:23

标签: c++ operator-overloading unreal-engine4

当我在此处浏览教程时UE4 Basics 我注意到在 CollidingPawn.cpp

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

被声明并定义为

class UCollidingPawnMovementComponent* OurMovementComponent;

//...

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

我认为该类具有一个重载()运算符,然后我可以追溯到其所有parents的位置,但是找不到一个,所以我想知道if语句在这里检查了什么,以及它的定义方式。

1 个答案:

答案 0 :(得分:2)

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

基本类型和类类型在指向它们的指针方面没有区别。

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