Generic Programming with C++ Template
■ このスレッドは過去ログ倉庫に格納されています
0665デフォルトの名無しさん
NGNGリストって知ってるよね?単方向でも双方向でも。
例えば、構造体Aと言う値を保持するリストのクラスを作ったとする。
これがなかなか便利で他のプログラムにも使いたい。
しかし、構造体Aは前のプログラム独自の物なので汎用性を持たせたい。
そこで、構造体Aの代わりにvoid *を持たせることにした。
しかし、これでは型キャストの嵐になるし、新しいノードを作るとき、自動的にデータ格納用の
メモリ領域を確保したり開放したりすることが困難になる。
next = new nextnode();
next.data = new ここを使う型が変わるたびに変更しなくてはならない。
そこでテンプレート。これは特定の抽象型を具体的な型に置換できる。
例えば、データ用の型をDATAとし、それをintと具体化すれば、
int型を扱うリストが出来るし、struct aaaと具体化すればaaa構造体のリストとなる。
■ このスレッドは過去ログ倉庫に格納されています