Почему эта печать 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();
}
f(int x = 0)
метод в B
структура не разделяет подпись ни с A
ни C
структура-х f()
методы.
Других решений пока нет …