好的,所以我知道有很多多态线程飞来飞去,但我还没有遇到这种情况。
class Base {
public:
virtual void method1() {
cout << "BaseMethod1" << endl;
}
void method2() {
cout << "BaseMethod2" << endl;
}
};
class Derive: public Base {
public:
void method1() {
cout << "DeriveMethod1" << endl;
method2();
}
void method2() {
cout << "DeriveMethod2" << endl;
}
};
int main() {
Base* p = new Derive();
p->method1();
}
让我绊倒的是派生类中的method1调用了method2。那么,既然 Base 类中的 method2 没有被声明为 virtual,那么它会是哪个 method2?
提前谢谢!