简体   繁体   English

使用可选参数覆盖虚函数

[英]Overriding a virtual function with optional arguments

Why is this printing 23 as output; 为什么这个打印23作为输出; my expectation was 33 . 我的期望是33 Could somebody please shed some light on this. 有人可以对此有所了解。

struct A {
    virtual void f() {cout << "1";}
};

/* Private inheritance */
struct B : private A {
    void f(int x = 0) {cout << "2";}
};

struct C : B {
    void f(){cout << "3";}
};

int main() {
    C obj;
    B &ref = obj;
    ref.f();
    obj.f();
}

B结构中的f(int x = 0)方法不与AC结构的f()方法共享签名。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM