私は次のシナリオを持っています:-
template <typename T>
class Base {
public:
virtual void someFunc() {}
};
class Derived : public Base<int>,
public Base<float> {
public:
virtual void someFunc() {
// do something different if Base<int> than if Base<float>
}
};
Derived *d = new D();
Base<int>* b1 = (Base<int>*) d;
Base<float>* b2 = (Base<float>*) d;
b1->someFunc();
b2->someFunc();
これら 2 つの関数呼び出しを区別できるようにしたいと考えています。つまり、2 つの基本関数を異なる関数本体でオーバーライドします。