免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: UnixStudier
打印 上一主题 下一主题

[C++] 私有继承,好奇ing  关闭 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2008-07-08 11:32 |只看该作者


[ 本帖最后由 maxxfire 于 2008-7-8 12:28 编辑 ]

论坛徽章:
0
32 [报告]
发表于 2008-07-08 11:34 |只看该作者
原帖由 maxxfire 于 2008-7-8 11:29 发表
楼主你懂不懂啊,私有继承后,当然不能这样访问了:sub.a


只要不是C++初学者,这个谁都知道,那C++这样设计有何意义呢?你举个有意义的例子来。

论坛徽章:
0
33 [报告]
发表于 2008-07-08 11:45 |只看该作者
原帖由 chbc88 于 2008-7-8 11:34 发表


只要不是C++初学者,这个谁都知道,那C++这样设计有何意义呢?你举个有意义的例子来。


这是C++的封装性,这样做的目的为了保护私有数据,防止数据被非本类对象随意修改。通过开放本类public成员函数间接的对私有数据进行操作,对权限进行有效控制。
通俗的讲就是一盘菜放桌上,只允许你用筷子,不允许你用手或其他。。
在大型的软件系统中,你就会体会到数据保护的好处了。。

论坛徽章:
0
34 [报告]
发表于 2008-07-08 11:55 |只看该作者
骂人的都是不对的
每种语言都有优点与长处

只有垃圾程序员 没有垃圾语言

论坛徽章:
0
35 [报告]
发表于 2008-07-08 11:57 |只看该作者
话又说回来了 智商不够还是去玩别的语言吧

论坛徽章:
0
36 [报告]
发表于 2008-07-08 12:01 |只看该作者
原帖由 maxxfire 于 2008-7-8 11:45 发表


这是C++的封装性,这样做的目的为了保护私有数据,防止数据被非本类对象随意修改。通过开放本类public成员函数间接的对私有数据进行操作,对权限进行有效控制。
通俗的讲就是一盘菜放桌上,只允许你用筷子 ...


所问非所答。这样问吧,如果让基类公用,让派生类A私有,而派生类B想公有,怎么办? 先这么简单描述,回来再说。
先吃饭,回来再看。

[ 本帖最后由 chbc88 于 2008-7-8 12:03 编辑 ]

论坛徽章:
0
37 [报告]
发表于 2008-07-08 12:12 |只看该作者
原帖由 chbc88 于 2008-7-8 12:01 发表


所问非所答。这样问吧,如果让基类公用,让派生类A私有,而派生类B想公有,怎么办? 先这么简单描述,回来再说。
先吃饭,回来再看。


这样可以吧?
class A: private Base ...
class B: public Base ...

或者用friend属性

论坛徽章:
0
38 [报告]
发表于 2008-07-08 12:49 |只看该作者
其实我觉得,可能是楼主还没有形成正确的面向对象概念和面向对象的思考方式,所以才会提出这样的问题。

我对楼主的建议是:先不忙开骂,认真地学习和掌握C++的语法和用法,遇到不能理解的地方,先做一个记号在这里;
然后去看看经典的《面向对象分析与设计》第二版,有中文版的,是UML发明人之一写的。

当你已经能够开始采用面向对象的思维方法来考虑问题时,再对过去不能理解的地方进行思考。

孔子教育我们:三思而后行。在这里,不妨说,三思而后言。

论坛徽章:
0
39 [报告]
发表于 2008-07-08 13:00 |只看该作者
原帖由 emuen_1982 于 2008-7-8 12:55 发表
公有继承是接口继承,私有继承是实现继承.

私有继承跟组合的作用是一样的,但是私有继承有一个好处是组合没有的.
如果类B想要使用类A的方法实现,并且A中没有任何成员,即是说A的size==0,如果将A组合为B的成员, ...


谢谢。

论坛徽章:
0
40 [报告]
发表于 2008-07-08 13:17 |只看该作者
原帖由 ustar 于 2008-7-8 12:12 发表


这样可以吧?
class A: private Base ...
class B: public Base ...

或者用friend属性



那么C派生于A和B呢,这样怎么办呢?

在C++里,friend 就是个汉奸走狗,让别人随便拿自家的东西。很有讽刺意味,其语义正好是其反义词,哈,你看C++傻成啥样了。

吃饱了,回来一看,回复的还真不少,就随便挑了一个。

[ 本帖最后由 chbc88 于 2008-7-8 13:31 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP