为什么 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;
}