[英]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)
方法不与A
和C
结构的f()
方法共享签名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.