に子クラスの静的メソッドのオーバーロードを強制します。 2番目のクラスでLolz()メソッドを明示的に宣言するか、Produce<Child>()
を使用するときにコンパイル時エラーがスローされるのでしょうか?は、私はこのような何かを持っているC++
それとも悪いのOOのデザインと私は全く別の何かをする必要がありますか?
EDIT:
私は基本的にやろうとしています何が、この作品のようなものを作ることです。
より一般Manager manager;
manager.RegisterProducer(&Woot::Produce, "Woot");
manager.RegisterProducer(&Goop::Produce, "Goop");
Object obj = manager.Produce("Woot");
か、知らない外部の抽象工場作成しているオブジェクトの型を変更することで、より多くのコードを記述することなく新しい型を追加することができます。
状況について詳しく説明していただけますか?あなたのプログラミングのように、ある種の工場のものです。 – diapir
マネージャのProduceメソッドが基本クラスへのポインタを返している場合、テンプレートを使用する際のポイントは何ですか? void RegisterProducer(Object *(* pfnProduce)()、const char * pName) –