c++ - UE4 类运算符 bool() 重载

标签 c++ operator-overloading unreal-engine4

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

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

声明和定义为

class UCollidingPawnMovementComponent* OurMovementComponent;

//...

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

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

最佳答案

OurMovementComponent 被定义为一个指针。所有指针都可以在条件中进行测试,无论它们的指针类型是否具有重载的 operator bool

就指向它们的指针而言,基本类型和类类型之间没有区别。

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

关于c++ - UE4 类运算符 bool() 重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51577474/

相关文章:

c++ - 在C程序中抽象文件系统的方法

c++ - Fftw3 库和计划重用

C# 泛型运算符

c++ - 错误 C4716 : 'operator<<' : must return a value

c++ - 从 UE4 链接到第三方库时无法解析的外部符号

c++ - 将工作项添加到数组或列表的非阻塞方式

c++ - 重写方法并使用shared_ptr调用它们的奇怪行为

android - UE4 NDK android-19 找不到 'log2'

multithreading - 来自子 CPU 线程的 Vulkan Compute 调度

c# - 从 C# 应用程序执行 C++ 函数