一直疏忽的C++ protected特性
时间:2010-06-03 来源:hzs526
现实编码中很少用到protected的成员函数、和protected继承,今天发现和想像的不太一样。
例1:
class Base
{
protected:
void Display()
{
cout<<"Base class" <<endl;
}
}; int main()
{ Base base;
base.Display(); //Error : cannot access protected member declared in class 'Base' } 在类外不能访问保护成员。 例2: class A
{
protected:
void Display()
{
cout<< "class A"<<endl;
}
};
class B : protected A { //有出处声明void Display()为B的私有函数 };
class C : protected B {}; int main() { C c; c.Display(); } 输出“class A” void Display()为B的保护成员函数,在C中可以调用。 运行环境Visual Studio 2005
{
protected:
void Display()
{
cout<<"Base class" <<endl;
}
}; int main()
{ Base base;
base.Display(); //Error : cannot access protected member declared in class 'Base' } 在类外不能访问保护成员。 例2: class A
{
protected:
void Display()
{
cout<< "class A"<<endl;
}
};
class B : protected A { //有出处声明void Display()为B的私有函数 };
class C : protected B {}; int main() { C c; c.Display(); } 输出“class A” void Display()为B的保护成员函数,在C中可以调用。 运行环境Visual Studio 2005
相关阅读 更多 +