class Actor
{
string _name;
bool _gender;
public:
......
}
class Monk:public Actor
{
public:
patter();
}
void Monk::patter()
{
cout<<_name<<":_......"<<endl;
}
这样的代码,编译器会报错,error:“Actor::_name”:无法访问private成员
现在问题产生了:我们希望在Monk类中访问到基类的成员。但是又不希望该成员对外公开?
c++为此提供了protected关键字,该保护类型成员的含义是:该类的派生类可以使用该类型的成员,但对外来说,他还是私有的。所以对于设计类的时候,就要考虑:如果该类会被继承,那么其可能被派生类访问的成员需要声明为protected类型!
上列中,class Actor可以这样写:
class Actor
{
protected:
string _name;
bool _gender;
public:
......
}
这样的话,在MonK::patter中访问_name就不会出错
但是类的对象依然是不能访问protected的成员的
Monk tang;
tang._name="唐三藏";
error:“Actor::_name”:无法访问protected成员
本文探讨了C++中基类成员如何在派生类中访问的问题,特别是当这些成员被声明为私有时如何解决访问问题。介绍了如何使用protected关键字来实现这一目标,并通过示例代码说明了正确的方法。
7944

被折叠的 条评论
为什么被折叠?



