C++ では、型 (クラスなど) をパラメーターとして関数に渡す方法はありますか?
これが必要な理由の説明: 抽象data
クラスとクラスがありmanager
ます。クラスには、のmanager
派生クラスのオブジェクトのリスト (この場合はマップ) が含まれていますdata
。この質問unique_ptr
の回答で述べたように、私はこれを使用します。
class Data{}; // abstract
class Manager
{
map<string, unique_ptr<Data>> List;
};
data
ここで、マネージャーに新しいストレージを追加したいとします。
class Position : public Data
{
int X;
int Y;
}
そのタイプのオブジェクトを作成してそれを参照するようにマネージャに指示するにはどうすればよいunique_ptr
でしょうか?
Manager manager;
manager.Add("position data", Position);
この場合、最初にインスタンスを作成してからマネージャーに送信する必要がないため、クラスをマネージャー クラスPosition
の関数に渡す必要があります。add
そして、どうすればそのクラスのオブジェクトをに追加できますList
か?
C++でそれを行う方法があるかどうかはわかりません。それが簡単にできない場合は、回避策を本当に知りたいです。どうもありがとう!