Reference couting (conteo referencial).

Introducción.

¿Qué es reference counting?

Reference counting es una técnica que se utiliza cuando necesitas mantener varias referencias a un mismo sitio, o más concretamente a un mismo objeto sin tener que tener varias copias de dicho objeto en memoria.

El problema derivado de hacer referencia a un objeto desde varios sitios consiste en la liberación del objeto, es decir, en el momento de liberar la memoria del objeto. Dicha liberación no constituye un problema en lenguajes con un buen recolector de basura (como C#) pero puede suponer una enorme fuente de memory leaks en otros proyectos. Por ejemplo, supongamos que tenemos algo como esto (el código es en c++ pero vale igual en delphi)