UEC++一级指针和二级指针
先看代码
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变量来查找具有给定 UIName
的 UUIState
对象。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**
表示一个指向指向对象指针的指针,允许在需要时更改指针的值。