なぜ、これらの概念を導入TWeakptr、TWeakObjectPtrとTSoftPtrコンセプト?

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/zhangxiaofan666/article/details/99733735

公式の説明:

Tweakptrはそれがスマートポインタの参照カウントを記録していない、エンジンへの弱参照は、スマートポインタを達成することであるので、実際の点ポインタがないため、このTweakptrを解放することはできません。対応するスマートポインタはTSharedPtrです。

また、エンジンとTWeakObjectPtrでは、実際にはGCではないUObjectにつながっ参照UObject、ではない、GCはGCするかどうかを決定するための参照を見つけることによって、理由の関係です。

TSoftPtrアクションは、実際にリソースを参照するが、リソースのパスを記録するので、このタイプのリソースはメモリにロードされ始めないが、ユーザが手動でロード時間を決定することができません。

個人的な理解:

非UObjectクラスならば、あなたはTWeakPtrを使用するために、参照カウントに影響を与える参照するために参照することはしたくありません

例えば:

TWeakPtr<FDungeonFlowEditor> FlowEditor;

UObjectクラスは、私が引用されたことにしたいとGCの影響を引用していなかった場合は、TWeakObjectPtrを使用するには

例えば:

TArray<TWeakObjectPtr<UObject>> ObjectsBeingCustomized;

TSoftPtrについては、公式には非常に明確に説明しました

おすすめ

転載: blog.csdn.net/zhangxiaofan666/article/details/99733735