C++的protected继承到底有什么作用?

RabbitLBJ 2012-02-25 02:45:52
看完effective c++,上面对public和private继承都有清楚的描述,唯独缺少protected

麻烦哪位高人能说下protected集成的具体应用,谢谢
...全文
987 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzcmx2008 2012-02-26
  • 打赏
  • 举报
回复
多次继承的时候,会有区别
teleinfor 2012-02-26
  • 打赏
  • 举报
回复
这是protected设计的封装规则和特性。理解了类的继承关系才算是对C++有个基础的理解。

protected的作用浅显的说就是为了保护类内部成员不能被直接用户访问,但是可以被继承者继续使用,并且这种特殊的关系一直传递下去。比如
classobj->publicfunc();//ok
classobj->protectedfunc;//NO!!!
但是protected member可以被sub-class继续使用,也就是可以被继承。具体的继承规则参见4楼。
may_gi 2012-02-26
  • 打赏
  • 举报
回复
一般说来protected就是当设计类成员的时候不想像public那样公开,又想在设计其派生类的时候能用到它.在设计基类的时候往往用protected会好些吧
alang512 2012-02-25
  • 打赏
  • 举报
回复

个人理解: protected 就是在继承里 把基类的公有成员 全在派生类里转换为 protected。 为什么会发出此疑问呢,难道还有其他理解
修巴利耶 2012-02-25
  • 打赏
  • 举报
回复 1
C++编程思想中是这么说的,
public意味着随后的定义对所有人都适用;private意味着除了该类型的创建者和该类型的内部成员函数之外,任何人都无法访问这些定义;而protected是继承的类可以访问protected的成员,但不能访问private的成员
无名剑 2012-02-25
  • 打赏
  • 举报
回复
就是把 基类一些public的接口啥的全变成protected
这样外部就无法通过这个类来调用基类的public方法
zhongliangzhihou 2012-02-25
  • 打赏
  • 举报
回复
protected 可以被该类的方法和其友元函数访问,但不能呗该类的对象访问
taodm 2012-02-25
  • 打赏
  • 举报
回复
effective c++的作者是C++界排前5名的人物,他的话基本都可以代表C++标准的了。
你就别钻牛角尖自寻烦恼了。
RabbitLBJ 2012-02-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 taodm 的回复:]

effective c++说得很清楚:还没有人知道这东西有什么用。
结贴吧。
[/Quote]

effective c++只是说作者还没明白这个有什么用吧??
大家难道就没有自己独特的见解说出来可以让同行分享下?
taodm 2012-02-25
  • 打赏
  • 举报
回复
effective c++说得很清楚:还没有人知道这东西有什么用。
结贴吧。
RabbitLBJ 2012-02-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ppsharp 的回复:]

C/C++ code
| 父类的public成员 | 父类的protected成员 | 父类的private成员
---------------|------------------|---------------------|-----------------
public继承 | public | protected ……
[/Quote]

谢谢你的回答,不过我不是想知道这些,这些东西查手册都能查到

我想知道的是PROTECTED继承在软件设计中的作用
就好比,public继承是is-a关系
private是is implemented by关系一样
ppsharp 2012-02-25
  • 打赏
  • 举报
回复
               | 父类的public成员 | 父类的protected成员 | 父类的private成员
---------------|------------------|---------------------|-----------------
public继承 | public | protected | 访问不到
---------------|------------------|---------------------|-----------------
protected继承 | protected | protected | 访问不到
---------------|------------------|---------------------|-----------------
private继承 | private | private | 访问不到
面包大师 2012-02-25
  • 打赏
  • 举报
回复
protected专门就是为继承(子类)设计的 用public继承,基类所有的访问标识在子类不变, protected还是protected
面包大师 2012-02-25
  • 打赏
  • 举报
回复
effective c++不太清楚,C++的protected只有类本身 和类的子类可以访问,对象是无法访问的!
pengzhixi 2012-02-25
  • 打赏
  • 举报
回复
曾经有人讨论觉得protected继承是多余的

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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