c++ - C++中的类继承

标签 c++ class inheritance overloading

以下代码将从类 B 调用函数 F,但有人可以向我解释为什么会这样。是否有可能 B 类的方法重载了 V 类的方法(因为 B 是从 V 继承的)?提前致谢。

#include <iostream>
using namespace std;

class V{
public: 
    void f(){ x+=2; cout << "V:"<< x;};
    int x;
};
class B: public virtual V{
public:
    void f(){ x+=3; cout << "B:"<< x;};
    int x;
};
class D: public B, virtual public V{
public:
    void g(){   x++;    f();    }
};
void main(){
    D ins;
    ins.x = 1;
    ins.g();
}

最佳答案

B::f() 隐藏方法V::f() ,这被称为函数隐藏

好读:
What's the meaning of, Warning: Derived::f(char) hides Base::f(double)?

关于c++ - C++中的类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14808815/

相关文章:

c++ - C++舍入算法中的0.501,C++中的Excel ROUND

c++ - 使用 libCurl 从 gmail POP3 帐户读取电子邮件

javascript - 单击时交换 <li> 的类

c# - 如何在运行时获取当前类名?

c++ - ARM C++ newlibnano : Pure virtual function causes linker error

c++ - 为什么在多重继承期间我不能 dynamic_cast "sideways"?

c++ - 不带多态性的抽象基类

c++ - 同一类的多个定义

c++ - 在 C++ 中发现 USB 设备并与之通信

c++ - C 函数调用 C++ 成员函数 - C 代码是用 C 编译器编译的