長い説明ではなく、数行のコードで問題をより明確に説明できると思います。2 つのクラスがあり、一方が他方から継承されているとします。
#include <iostream>
class A{
public:
void parse()
{
treatLine();
};
void treatLine()
{
std::cout << "treatLine in A" << std::endl;
}
};
class B : public A{
public:
void treatLine()
{
std::cout << "treatLine in B" << std::endl;
}
};
int main()
{
B b;
b.parse();
return 0;
}
実行すると、驚くべきことに、「treatLine in A」と出力されます。クラス B の関数 TreatLine を、タイプ B のオブジェクトで呼び出されるようにすることは可能ですか (つまり、上記のコードでは "treatLine in B" が表示されます)。そして、「treatLine in A」を出力するタイプ A のオブジェクトを作成する可能性を維持します。