プログラムの中で何かが存在するとき、
それはメモリの中に存在していると言って過言ではなく、
プログラムを動かすとどんどんメモリの確保が行われていきますね。
その対応として、メジャーなプログラミング言語にはだいたい、
不要になったメモリを自動的に開放する仕組み、
ガベージコレクション(GC)機能が搭載されています。
ただし、GCが動作すると処理が遅くなったり、GCが動作するタイミングを制御できなかったりと、
コントロールしにくい/できない場合もあり、処理速度がクリティカルなシステム開発で使用される、
C++ 言語には標準で搭載されていません。
GCが最初に搭載されたプログラミング言語はLISPということで、
当時のマシンスペックでは実用的には色々早すぎたけれど(関数型の部分など)、
論理的にはその当時(1960年頃)から現在のプログラミング言語のベースはあったのだなと改めて思わされます。