为什么打印 23
作为输出;我的预期是 33
。有人可以阐明这一点吗。
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()
方法。
关于c++ - 使用可选参数覆盖虚函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14930406/