遗产.从父类调用子类函数

Edd*_*die 1 c++ oop qt

class C1 {
    void A();
    void B();
}

void C1::A(){ return B(); }

class C2 : public C1 {
    void B();
}

C2 *obj = new C2;
obj->A(); // returns B() from C1
Run Code Online (Sandbox Code Playgroud)

为什么来自C1的B()被称为?如何使A()仅存在于C1中并从C2调用B()?

Sha*_*baz 10

你需要B()C1一个virtual功能.

虚函数基本上是函数指针,它们在初始化对象时获取它们的值.如果你new C1,函数指针将指向,C1::B如果你的new C2函数指针指向C2::B.

注意:要阅读virtual有关主题和相关主题的更多信息,请搜索功能覆盖多态.