B::Func が静的メソッド呼び出しのように見える構文を使用して A::Func を呼び出すことができるのはなぜですか? インスタンスメソッドだから失敗するんじゃないの?
class A {
public:
void Func() {
printf( "test" );
}
};
class B : private A {
public:
void Func() {
A::Func(); // why does it work? (look below in main())
}
};
int main() {
B obj;
obj.Func();
// but we cannot write here, because it's not static
// A::Func();
return 0;
}