と関数が定義されAた基本クラスが与えられます。A::getA::add
class A {
public:
int get() { return 3; }
int add() {
return get() + get();
}
};
A::addを呼び出すことに注意してくださいA::get。派生クラスBが呼び出しA::addて独自のB::get関数を使用する方法はありますか? 何かのようなもの:
class B : public A {
int get() { return 7; }
};
#include <iostream>
int main() {
A foo;
std::cout << foo.add() << std::endl;
B bar;
std::cout << bar.add() << std::endl;
return 0;
}
期待される出力は、2 番目のケースではあり14ません。6を制御できれば、仮想関数をA作成でき::get、各派生クラスは必要に応じてそれを実装できます。ただし、それは不変であると仮定しAましょう - どうすれば正しい を呼び出すことができます::getか?