C++が他のオブジェクト指向言語と比べて難しいのは、やはりメモリ管理をプログラマが自分でしなければいけない点だと思います。よくよく注意しないと、削除し忘れたり、同じオブジェクトを2度削除してしまうというエラーが発生します。このノートでは、オブジェクトを「値オブジェクト」と「参照オブジェクト」というカテゴリに分け、詳細設計の段階で注意すべき点を整理しておきたいと思います。 0. はじめに 私自身今までいくつかのプログラミング言語を使ってきましたが、C++ が他のオブジェクト指向言語と比べて難しいのは、やはりメモリ管理をプログラマが自分でしなければいけない点だと思います。例えば、 Person* person = new Person(); と生成したオブジェクトは、使い終わったら次のように削除しなければなりません。 delete person; 生成してすぐ削除するなら簡単なのですが、実際に
![C++クラス設計に関するノート](https://cdn-ak-scissors.b.st-hatena.com/image/square/19306184850c9c123e0926526b953151bbaf3045/height=288;version=1;width=512/https%3A%2F%2Fwww.ogis-ri.co.jp%2Fotc%2Fhiroba%2Ftechnical%2FCppDesignNote%2Fimages%2Fcpp_ogp.png)