我有以下课程
#include <iostream>
using namespace std;
class A {
public:
int get_number() {return 1;}
void tell_me_the_number() {
cout << "the number is " << get_number() <<"\n";
}
};
class B: public A {
public:
int get_number() {return 2;}
};
int main() {
A a;
B b;
a.tell_me_the_number();
b.tell_me_the_number();
}
我希望这会输出给我:
the number is 1
the number is 2
但实际上,我得到了 1 号线的两倍。
是B类的时候不应该调用B类的get_number()方法吗?如果这是应该的,我怎样才能获得我想要的行为?