在Windows目标Delphi应用程序中是否引用了对象引用,如果是,它的目的是什么?

mag*_*nus 0 c++ windows delphi

鉴于对相关问题(/sf/answers/1546047471/)的以下答案是在以Windows为目标的Delphi应用程序中计算的对象引用?

即:

Q1A在第二个语句后执行以下对象的引用计数为2?

o1 := TMyObject.Create;
o2 := o1;
Run Code Online (Sandbox Code Playgroud)

Q1B从上面继,将分配o1nil的引用计数下降到1?

o1 := nil;
Run Code Online (Sandbox Code Playgroud)

Q1C后再次上,将分配o2nil的引用计数下降到0?

o2 := nil;
Run Code Online (Sandbox Code Playgroud)

Q1D向前移动,如果以上是正确的并且对象现在的引用计数为0,我理解编译器不会自动释放对象(o2.Free应该在o2 := nil上面调用之前为了防止内存泄漏).请记住,我说的是Windows目标,而不是具有自动引用计数(ARC)的移动目标.

Q1E如果引用计数没有自动释放与对象关联的内存,那么Delphi中的引用计数究竟是什么(例如,它是否有助于跟踪内存泄漏)?

Uli*_*rdt 11

在任何桌面平台(包括Windows)下,对象实例都不会被引用计数.仅在移动平台(iOS,Android)下才能引用对象.所以Q1A-E的问题没有实际意义.