ども・・・・・・・・・・・・GES会長の和佐田雅史です。
今日はC++におけるGenericProgrammingについて少しだけ・・・・・・・・・・・
前スマートポインタの所で書いたtemplate< class T>~のようにtemplateを使ったプログラムの事をジェネリックプログラミングと言います。
具体的な用途とか意味を説明しますと、型に依存しないプログラムが組める。
例えば
以下のコードはT型の変数を安全にdeleteするプログラムです。
template < class T > inline void Safe_Delete( T p )
{
if ( p )
{
delete p;
p = NULL;
}
}
T型は勿論ポインタ型でないといけません。
※< class T >と書いていますが、< typename T >でも同じことです。
上のユーティリティーを使う時は
// new演算子で動的に作る
Character* pChara = new Character;
// 解放する
Safe_Delete< Character* >( pChara );
とすれば使えます。
※別に型は指定しなくても使えるが、一応念のためこうして記述するようにして下さい。
このGenericProgrammingを使えるようになればObject志向だけでは補えなかった柔軟性という部分を手に入れることが出来、今よりも更に効率的なプログラムが組めるようになります。
ではここでちょっと本の紹介を・・・・・・・・・・・
Effecttive C++
効率的なプログラムを組みたい人向け。中級者向き。
Effevtive STL
STLを利用したジェネリックプログラミングです。
STLで効率的にプログラムを組みたい方にはお勧めです。
More Effecttive C++
スマートポインタの実装の仕方、コンストラクタとデストラクタを用いたリーソースリークの防ぎ方等々
中級者向き。
Modern C++ Design
デザインパターンをジェネリックに実装する方法が書かれた本。
これが理解出来れば恐らく現役のクリエイターにすら匹敵する実力が身につきますが・・・・・・・・・・
基本的にはお勧めしません。最強のC++プログラマになりたい方のみ読んで下さい。
あ・・・・因みに言うまでも無いですが、上級者向きです。
※それ以上に難しいことがしたい人は基本的に洋書になります。
それではお疲れ様でした。
[0回]
PR
COMMENT