这句话该如何理解阿?

charkie 2006-11-19 11:32:29
class A
{
protected:
int x;
};
class B:public A
{
public:
void function();
};
void B::function(){x=5;}

“对于派生类B的成员函数function,基类的保护成员是完全可以访问的。”这一句话如何理解啊?
...全文
203 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
charkie 2006-11-20
  • 打赏
  • 举报
回复
大家说得我明白了
我还以为原文是说x可以访问function(),把我给弄糊涂了
aniude 2006-11-20
  • 打赏
  • 举报
回复
protected就是为了派生的
CHROX 2006-11-20
  • 打赏
  • 举报
回复
最后一句话有误。
前提是:
类的私有成员仅可由类的成员和友元函数访问;
类的保护成员比私有成员就多了这一个例外:还可由其派生类成员函数访问。
公有成员可被任意访问。
然后:
当基类被继承为public时基类的保护成员变成派生类的保护成员,公有成公有。
当基类被继承为protected时基类的公有成员变成派生类的保护成员;
当基类被继承为private时基类的所有成员都变成派生类的私有成员(除了私有成员);
CHROX 2006-11-20
  • 打赏
  • 举报
回复
一般情况下:
类的私有成员仅可由类的成员和友元函数访问;
类的保护成员比私有成员就多了这一个例外:还可由其派生类成员函数访问。

当基类被继承为public时基类的保护成员变成派生类的保护成员,
当基类被继承为protected时基类的公有成员变成派生类的保护成员;
当基类被继承为private时基类的所有成员都变成派生类的私有成员;
lei001 2006-11-19
  • 打赏
  • 举报
回复
派生类以public继承基类,基类的保护成员,成为派生类的私有成员,
派生类的成员函数访问是没有问题
heyuen877 2006-11-19
  • 打赏
  • 举报
回复
不就是说,派生类B的成员函数function可以读写基类的保护成员x吗?
保护成员本来就是只向自身和派生类公开的。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧