c++ - 遗产。从父类调用子类函数

标签 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

为什么调用 C1 中的 B()?如何让A()只存在于C1,而从C2调用B()?

最佳答案

你需要在 C1 中使 B() 成为 virtual功能。

虚函数基本上是函数指针,在对象初始化时取值。如果您new C1,函数指针将指向C1::B,而如果您new C2,函数指针将指向 C2::B.

注意:要阅读有关虚拟 和相关主题的更多信息,请搜索函数覆盖多态性

关于c++ - 遗产。从父类调用子类函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9908435/

相关文章:

c++ - 如何在下一个函数调用之前完全显示 QMessageBox

c++ - 检测输入是字符串还是整数

c++ - 将 std::wstring 转换为 WCHAR*

c++ - 定义命名空间的变体和 __visibility__ 的含义

java - visual c++ 将 java 类作为进程运行

c++ - QRegExp问题

c++ - Qt 多个异步 While 循环和 qApp->processEvents();

javascript - 如何正确设置 JavaScript 命名空间和类?

oop - 可选多对多关系的域模型

c++ - 将变量传递给多个类 - C++