reference counting lets you safely share objects. The concept is simple. Rather than controlling an object’s lifetime externally, the object itself controls when it is deleted. Or rather, the object’s lifetime is controlled indirectly from the outside via a usage count. The users of the object indicate when they start and stop using the object. The object guarantees that it will stick around as long as it is being used by someone. This is the technique used by COM objects.