欢迎光临散文网 会员登陆 & 注册

UEC++一级指针和二级指针

2023-09-14 17:30 作者:koukou-u  | 我要投稿

先看代码

UUIState* UUIManagerComponent::GetUI_Implementation(FName UIName)
{
   UUIState** UI=UUInstances.Find(UIName);
   if(UI!=nullptr)
   {
      return *UI;
   }
}

UUIState是写的一个C++类

这个函数的目的是根据提供的 UI 名称来获取对应的 UUIState 对象。

UUIState** UI = UUInstances.Find(UIName);: 这一行代码使用 UUInstances 这个TMap变量来查找具有给定 UINameUUIState 对象。UUInstances.Find(UIName) 的返回值是一个指向指针的指针,它允许检查是否找到了与 UIName 匹配的 UI。

UUIState**为什么是两个**

UUIState** UI 是一个指向 UUIState* 类型指针的指针,这是为了允许在 UI 指针中存储一个指向 UUIState 对象的地址。

UUIState*和UUIState**有什么区别

UUIState*:

UUIState* 表示一个指向 UUIState 类型对象的指针。这个指针可以用来访问和操作一个 UUIState 对象的属性和方法。

当使用 UUIState* 时,操作的是指向单个 UUIState 对象的指针。可以通过该指针访问该对象的成员变量和方法。

UUIState**:

UUIState** 表示一个指向 UUIState* 类型指针的指针,通常称为二级指针。这个指针可以用来存储指向 UUIState* 对象指针的地址。

当使用 UUIState** 时,实际上操作的是指向指向 UUIState 对象的指针的指针。这使能够更改指向对象的指针的值。

UUIState* 表示一个指向对象的指针,而 UUIState** 表示一个指向指向对象指针的指针,允许在需要时更改指针的值。

UEC++一级指针和二级指针的评论 (共 条)

分享到微博请遵守国家法律