私は次の問題を抱えています(簡略版):
Interface X;
class Y : public X { ... }
class Z : public X { ... }
class A
{
map<int, X> m;
init() { X bla = new Y or Z; map.insert(...) }
}
Aの作成時にYまたはZを指定したいので、指定したタイプに基づいて異なる機能を取得します。現在、Aを「テンプレート化」することはできますが、1つのメソッドでのみ使用する必要がある場合でも、Aに対して定義するすべての関数でテンプレートを指定する必要があります。また、g ++ 4.2.4を使用しています。これは、関数の実装をヘッダーファイルから分離できないことを意味します。