C++プログラミングでの仮想関数の処理について質問があります。私はこのようなものを持っています:
template<class T>
class baseClass
{
virtual void doSomething(T& t) {
// some baseClass specific code
}
void doSomethingElse(T& t) {
// some baseClass specific code
this->doSomething(t);
}
}
template<class T>
class subClass
{
virtual void doSomething(T&) {
// some subclass related code
}
}
ここで、subClass型のオブジェクトを作成すると...
int main(int argc, char *argv[])
{
subClass<anyType> * subClassObject = new subClass<anyType>();
subClassObject->doSomethingElse(anyTypeObject);
}
....そしてdoSomethingElse
基本クラスのメソッドを呼び出すと、このメソッドはdoSomething
サブクラスではなく基本クラスのメソッドを呼び出します。
私が欲しいのは、doSomething
(ではなく)サブクラスのメソッドを呼び出すことbaseClass
です。
誰かがそれを達成する方法を教えてもらえますか?