Stell dir vor, du hast ein normales C++ Objekt (Eine Instanz einer Klasse), welches nicht viel mehr macht, als einen Zeiger zu kapseln. Es speichert einen Zeiger und kann das Objekt auf welches der Zeiger zeigt zurück geben. Das Objekt holt sich im Konstruktor Speicher und gibt ihn im Destruktor wieder frei. Das passiert mit new bzw delete. Den Vorteil den du dadurch hast, ist dass du selbst nicht mehr darauf achten musst delete aufzurufen. Das ganze nennt sich dann smartpointer. Es ist quasi ein Zeiger, welcher etwas eleganter ist.
Hier kannst du mal gucken. Sieht ganz gut aus. Hab es aber selbst nicht gelesen. Ansonsten kannst du das ganze auch mal selbst bei Google suchen. Du kannst dir natürlich selbst so eine Klasse schreiben, wobei es dabei ein paar Sachen gibt die du beachten solltest. Am einfachsten wäre es, wenn du dich ein bisschen zu dem ganzen Thema informierst und dann guckst was es schon fertig gibt. STL kennst du ja bereits, da du Container wie Vector, List, etc verwendest. Boost wäre vielleicht noch ein weiteres Stichwort welches dir im verlaufe deiner Entwicklerzeit Arbeit ersparen kann.