Hoo*_*ked 2 c++ inheritance overriding
给定基类A,A::get并A::add定义和函数.
class A {
public:
int get() { return 3; }
int add() {
return get() + get();
}
};
Run Code Online (Sandbox Code Playgroud)
请注意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;
}
Run Code Online (Sandbox Code Playgroud)
预期输出14不在6第二种情况下.如果有控制权A,我可以创建::get一个虚函数,每个派生类都可以根据需要实现它.但是,假设这A是不可变的 - 我该如何调用正确的::get?