原文:【UE4 C++ 基礎知識】<15> 智能指針 TSharedPtr、UniquePtr、TWeakPtr、TSharedRef

基本概念 UE 對 UObject 對象提供垃圾回收 UE 對原生對象不提供垃圾回收,需要手動進行清理 方式 malloc free new delete new與malloc的區別在於,new在分配內存完成之后會調用構造函數。 缺點 如果不及時清理,則會占用內存,或者導致內存泄漏 如果不小心提前清理,則會導致野指針 UE 提供共享指針庫來管理內存,它是C 智能指針的自定義實現 分類 TShare ...

2021-05-04 17:00 0 5671 推薦指數:

查看詳情

UE4 C++ 基礎知識】<6> 容器——TMap

概述 TMap主要由兩個類型定義(一個鍵類型和一個值類型),以關聯對的形式存儲在映射中。 將數據存儲為鍵值對(TPair<KeyType, ValueType>),只將鍵 ...

Sat Apr 24 04:42:00 CST 2021 0 230
UE4 C++ 基礎知識】<9> Interface 接口

概述 簡單的說,接口提供一組公共的方法,不同的對象中繼承這些方法后可以有不同的具體實現。 任何使用接口的類都必須實現這些接口。 實現解耦 解決多繼承的問題 藍圖使用 使用方法 三種調用方法的區別 調用流關卡藍圖的接口函數 C++ 使用接口 本例使用 ...

Mon Apr 26 01:43:00 CST 2021 0 424
UE4 C++ 基礎知識】<10>資源的引用

2種引用方式 硬引用(Hard Reference) 即對象 A 引用對象 B,並導致對象 B 在對象 A 加載時加載 硬引用過多會導致運行時很多暫時用不到的資源也被加載到內存中 大量 ...

Tue Apr 27 05:22:00 CST 2021 0 364
UE4 C++ 基礎知識】<8> Delegate 委托

概念 定義 UE4中的delegate(委托)常用於解耦不同對象之間的關聯:委托的觸發者不與監聽者有直接關聯,兩者通過委托對象間接地建立聯系。 監聽者通過將響應函數綁定到委托上,使得委托觸發時立即收到通知,並進行相關邏輯處理。 委托,又稱代理,本質是一個特殊類的對象,它內部 ...

Sat Apr 24 22:54:00 CST 2021 0 284
[UE4]虛幻4的智能指針

虛幻自己實現了一套智能指針系統,為了跨平台。 指針: 占用8個字節,4個字節的Object指針,4字節的引用計數控制器的指針, 引用計數控制器需要12字節, 一個C++的Object指針4字節,一個共享引用計數,4字節,一個弱引用計數,4字節。 簡單用法如下,當sharepoint ...

Sun Apr 01 18:56:00 CST 2018 0 3739
C++ 中的智能指針-基礎

要點回顧 此部分方便知識點快速回顧,首次閱讀請從引言部分開始。 RAII 的主要原則就是把任何在堆上分配的資源(比如動態分配的內存或者系統對象的處理)的所有權提供給在棧上分配的對象(其析構函數包含釋放資源及相關清理的代碼)。 在現代 C++ 中,原始指針只用於包含 ...

Thu Feb 18 21:55:00 CST 2021 0 334
UE4 C++ 基礎知識】<4> 枚舉 Enum、結構體 Struct

枚舉 UENUM宏搭配BlueprintType可以將枚舉暴露給藍圖,不使用的話,僅能在C++使用 結構體 BlueprintType可以將枚舉暴露給藍圖 繼承FTableRowBase之后可以用於DataTable 參考 結構體 ...

Fri Apr 23 05:07:00 CST 2021 0 360
 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM