UEC++一級指針和二級指針
先看代碼
UUIState* UUIManagerComponent::GetUI_Implementation(FName UIName)
{
? ?UUIState** UI=UUInstances.Find(UIName);
? ?if(UI!=nullptr)
? ?{
? ? ? return *UI;
? ?}
}
UUIState是寫的一個C++類
這個函數(shù)的目的是根據(jù)提供的 UI 名稱來獲取對應的 UUIState
對象。
UUIState** UI = UUInstances.Find(UIName);
: 這一行代碼使用 UUInstances
這個TMap變量來查找具有給定 UIName
的 UUIState
對象。UUInstances.Find(UIName)
的返回值是一個指向指針的指針,它允許檢查是否找到了與 UIName
匹配的 UI。
UUIState**為什么是兩個**
UUIState** UI
是一個指向 UUIState*
類型指針的指針,這是為了允許在 UI
指針中存儲一個指向 UUIState
對象的地址。
UUIState*和UUIState**有什么區(qū)別
UUIState*:
UUIState*
表示一個指向 UUIState
類型對象的指針。這個指針可以用來訪問和操作一個 UUIState
對象的屬性和方法。
當使用 UUIState*
時,操作的是指向單個 UUIState
對象的指針??梢酝ㄟ^該指針訪問該對象的成員變量和方法。
UUIState**:
UUIState**
表示一個指向 UUIState*
類型指針的指針,通常稱為二級指針。這個指針可以用來存儲指向 UUIState*
對象指針的地址。
當使用 UUIState**
時,實際上操作的是指向指向 UUIState
對象的指針的指針。這使能夠更改指向?qū)ο蟮闹羔樀闹怠?/p>
UUIState*
表示一個指向?qū)ο蟮闹羔?,?UUIState**
表示一個指向指向?qū)ο笾羔樀闹羔槪试S在需要時更改指針的值。