typedef を互換を保ったまま変更2011年04月22日 10時16分24秒

コードの保守や、新規機能の追加をする時に、互換性を保ちつつ新しい機能を入れるのは日常茶飯事。

typedef で型名が定義されている時には単純に public 型の継承を使うと現存のコードに手を入れないで、機能を追加変更することが出来る。

Java やその他でも見られる一般的な型。


   typedef std::map<std::string, std::string> Property;   

これを継承に置き換える。

   class Property: public std::map<std::string, std::string>
   {
   };

後は、現存する関数を新しいクラスでオーバーライドしたり、新しい関数を追加すると、最小限の変更で互換性を維持できる。