C++ 垃圾回收在内存中移动引用的对象是否会破坏Unreal4引擎中的引用?
假设我们有两个类:C++ 垃圾回收在内存中移动引用的对象是否会破坏Unreal4引擎中的引用?,c++,memory,reference,garbage-collection,unreal-engine4,C++,Memory,Reference,Garbage Collection,Unreal Engine4,假设我们有两个类: UCLASS() class SOME_API ClassA: public UObject { public: GENERATED_UCLASS_BODY() }; Unreal中的uObject是垃圾收集的。我是否正确地假设,如果refA引用的ClassA对象被GC在内存中移动,refA将不会被更新,并且会突然引用无效内存?有人知道虚幻情节4中的GC是否可以处理这种情况吗 GC不会随机移动ClassA,但如果它的upperty引用计数达到0,则refA将是一个悬空
UCLASS()
class SOME_API ClassA: public UObject
{
public:
GENERATED_UCLASS_BODY()
};
Unreal中的uObject是垃圾收集的。我是否正确地假设,如果refA引用的ClassA对象被GC在内存中移动,refA将不会被更新,并且会突然引用无效内存?有人知道虚幻情节4中的GC是否可以处理这种情况吗 GC不会随机移动
ClassA
,但如果它的upperty引用计数达到0,则refA
将是一个悬空引用。如果您想从非UObject
对UObject
进行弱引用,则可以使用。您希望它如何处理这种情况?我不知道虚幻,但我希望他们提供某种智能指针,你可以用它作为参考,参与参考计数。关于悬空参考的部分我很清楚,但这仍然是有用的信息。我特别想知道是否可以移动对象,因为据我所知,许多地面军事系统可以自由移动对象,以避免内存中的碎片。在我也可以使用引用的情况下,我试图避免使用指针,因此不使用TWeakObjectPtr作为well@lolaldnee是的,这是可以理解的,然而就C++而言,更新一个指向已被移动到内存中的对象的引用是不可能的。Imo参考文献作为参数很好,但参考文献成员几乎总是一个错误(尽管只是一个观点)。如果您想避免检查If
satements中的指针,那么最好的方法是断言它们的有效性,ue4有一个check
宏。除此之外,指针和引用之间应该没有性能差异。
class ClassB
{
ClassA& refA;
};