C++程序员大挑战之三----让人目瞪口呆的存储权限
前言:本帖只关心理论,而不会考虑其是否有实际意义。
假设有如下的类体系结构:
class A
{
public:
void Display(){ printf("\nDisplay()\n");};
protected:
void Protected_Display() { printf("\n Protected_Display()\n"); };
};
class B : protected A // .............注意,是 protected 派生
{
public:
using A::Display;
using A::Protected_Display;
};
int main()
{
B b;
b.Display(); //.................................(1)
b.A::Display(); //.................................(2)
b.Protected_Display(); //.................................(3)
b.A::Protected_Display();//.................................(4)
}
问题1:
在上述的(1)(2)(3)(4)四个调用中,有那些调用会造成编译错误?
问题2:
如果编译器编译的结果与您预先设想的不符,您是否认为这是编译器的一个BUG?