From RAD Studio Code Examples
This code example indicates how the Automatic Reference Counting (ARC) mechanism manages objects' lifetimes. ARC is the default for the Delphi mobile compilers.
uses System.SysUtils; type TMySimpleClass = class private // stringMember: String; constructor Create(Text: String); end; constructor TMySimpleClass.Create(Text: String); begin stringMember := Text; end; procedure SampleARC(ref: TMySimpleClass); var localObj1, localObj2: TMySimpleClass; begin // After the following assignments, the reference count should be 4. // Two references coming from localObj1 and localObj2, and one from passing the object to the procedure. localObj1 := ref; localObj2 := localObj1; // By the moment the end statement has been passed in this procedure, // the Automatic Reference Counting mechanism will manage the memory automatically. end; var myObject: TMySimpleClass; begin // The reference count for the newly created object is 1. myObject := TMySimpleClass.Create ('This is a code example for Automatic Reference Counting'); SampleARC(myObject); // The reference count is still 1. end. // Ending the program will release the object from the memory.