私は基本クラスを持っています
class base {
public:
base();
int someData;
virtual void foo(){
std::cout << someData;
}
};
およびいくつかの派生クラス
class derived : public base {
public:
derived();
void foo(){
std::cout << someData * 5;
}
};
基本的に同じ種類のデータを持っていますが、このデータに対する操作は異なります。オブジェクトの詳細を知る必要のない別のクラスがあります。必要なのは、データを設定して派生した foo() を呼び出すことだけです。
class useData {
public:
useData();
base x;
int do() { x.someData = 5; return x.foo(); }
};
「useData」を可能な限り汎用にしたいので、その定義で派生クラスの代わりに基本クラスを使用しています。もちろん、このシナリオでは、派生メソッドではなく基本メソッドを呼び出します。コードを書き直すにはどうすればよいですか? (型チェックなどを行わずに) 派生メソッドを自動的に呼び出すにはどうすればよいですか?
ありがとうございました