登陆论坛 我要注册 [随便逛逛] 找回密码 回到首页
帮助
版主:saliven 麦克 银河 

<< [1] 2 >>  [只看楼主] 点击数:506 回复数:56 此贴功能: [管理]

主题:关于C++里的public和private

番茄
72555

来自:上海
注册:2001-08-12
发帖:143+1581 
活动内容:
  引用:

所谓公有,就是外部可以访问的数据或执行的操作。比如一个人的身高(数据)是可以较直接地获得的,一个人吃东西(操作)是可以受外部控制的。私有就是外部不能直接访问的数据或执行的操作。比如一个人的心跳次数(数据)和消化过程(操作),虽然他们都是客观存在,但我们却不能直接地获取心跳数据或控制消化过程。

如果一个类的所有数据和操作都是公有的,那么它将完全暴露在外,同结构一样没有安全性。如果一个类的所有数据和操作都是私有的,那么它将完全与外界隔绝,这样的类也没有存在的意义。


各位C++达人看看这样的描述有什么问题么?我觉得我已经把我的意思讲清楚了啊……downloading

看过我写的东西的朋友提出意见,只要的确是我有写错的地方,哪怕骂我几句都没关系,因为的确是我写错了。

看了我写的东西但是没有看完整,断章取义的,我深表理解,并感谢您能关注我的作品。

对于那些看也没看就妄加评论的,我只好downloading送您一个大downloading

downloadingdownloadingdownloading

该贴剩余积分:0分,已分配:10分!

已获奖励的人员:
fdxx_13_胖大海(1分)
xuhao75_烟卷儿(1分)
sunnybea_瘋狂的小熊(1分)
su_520_இ(1分)
mynightelf_无尽的混乱(2分)
wchcastle_瓦啦瓦啦(2分)
izual_Justin.CHG(2分)



获网友奖分50点(等于2点PP)  [详细记录]
-------------------------------------------------------------------------------------------
《易学C++》已由人民邮电出版社出版
http://www.tomatostudio.net.cn/
优惠订购《易学C++》网址
http://www.china-pub.com/39862

发表于:2008-05-11 11:40:24

197

来自:上海
注册:2008-04-22
发帖:5+943 
downloadingdownloading


LZ散我点pp吧

[此贴子已经被作者于 2008-05-11 11:41:31 编辑过]    




-------------------------------------------------------------------------------------------
人生就像大便
有時候努力了半天
出來的卻只是一個屁。

发表于:2008-05-11 11:40:45
推荐:★★萧亚轩★★ [图]   by DVD  [6149/91]   [奖励PP] ...第1楼...

烟卷儿
82175

来自:上海
注册:2008-02-22
发帖:31+2060 
downloadingdownloading



-------------------------------------------------------------------------------------------
F水不流外人田!

发表于:2008-05-11 11:41:22

14388

来自:上海
注册:2002-07-04
发帖:1392+32090 
这个比喻有点。。。



-------------------------------------------------------------------------------------------
crazy bear...

发表于:2008-05-11 11:41:40

இ
131073

来自:上海
注册:2004-01-04
发帖:546+6443 
downloadingdownloadingdownloading书店有卖的么?



-------------------------------------------------------------------------------------------
知道什么是死,才能够更好的活
su_520@hotmail.com

发表于:2008-05-11 11:42:08
推荐:一起看彩虹 [图]   by 云白天蓝  [923/14]   [奖励PP] ...第4楼...

198

来自:上海
注册:2008-04-22
发帖:5+944 
downloading谢谢LZ...虽然没看过你的作品



-------------------------------------------------------------------------------------------
人生就像大便
有時候努力了半天
出來的卻只是一個屁。

发表于:2008-05-11 11:45:24

65295

来自:上海
注册:2008-02-26
发帖:3+2586 
downloadingdownloadingdownloadingdownloading顶楼主



-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......

发表于:2008-05-11 11:46:04

无尽的混乱
55215

来自:海外
注册:2006-06-04
发帖:43+985 
一个类,所有的方法和变量都是私有的,也是有意义的。
一些核心的类,就是这样的,实例化后,所有的操作都是类内部自动完成的。比如监视器,队列调整等等



-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......

发表于:2008-05-11 11:46:04

莋兯
12387

来自:上海
注册:2006-08-11
发帖:133+5568 
还是买点相关的书看看



-------------------------------------------------------------------------------------------
少量CDMA无线上网!年卡,季卡!不计漫游费用!每个月使用200小时!需要的PM我!QQ58628144&amp;nbsp;

发表于:2008-05-11 11:46:39
推荐:广角人像[一张] [图]   by 我是认真的  [1791/28]   [奖励PP] ...第8楼...

瓦啦瓦啦
80418

来自:上海
注册:2002-12-16
发帖:103+4950 
例子举的不好
关于public与private的区分一方面是安全性的考虑 另一方面是分割接口与实现 提供弹性
这个例子看不出这样的含义

黑体字部分感觉可以删掉 一来太绝对 二来明白了public与private后很容易推的

cpp书真的不好写 最好是做过很多cpp项目 结合项目进行展开 否则很容易想当然



-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......

发表于:2008-05-11 11:46:53
推荐:我也来发08秋季婚纱 [图]   by 580exII  [501/44]   [奖励PP] ...第9楼...

20970

来自:上海
注册:2001-01-25
发帖:1594+26522 
结构和类有区别?downloadingdownloading



-------------------------------------------------------------------------------------------
Primal eyes

发表于:2008-05-11 11:48:11
推荐:《夏日香气》--人像外拍  by 社区活动  [1024/36]   [奖励PP] ...第10楼...

Justin.CHG
13524

来自:上海
注册:2000-10-17
发帖:131+5388 
事实上,当前的很多语言,都不建议把数据(Field)直接public出来,都通过Method对Field进行封装。进一步可以衍生出Readonly的Field。



-------------------------------------------------------------------------------------------
这个家伙吝啬,什么也没留下......

发表于:2008-05-11 11:49:47

7242

来自:保密
注册:2008-02-21
发帖:12+313 
downloading



-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......

发表于:2008-05-11 11:50:04

65297

来自:上海
注册:2008-02-26
发帖:3+2590 
帮顶



-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......

发表于:2008-05-11 11:50:21
推荐:今天的晚霞两张,HDR [图]   by 清流  [689/17]   [奖励PP] ...第13楼...

番茄
72540

来自:上海
注册:2001-08-12
发帖:143+1583 
  引用:
例子举的不好
关于public与private的区分一方面是安全性的考虑 另一方面是分割接口与实现 提供弹性
这个例子看不出这样的含义

黑体字部分感觉可以删掉 一来太绝对 二来明白了public与private后很容易推的

cpp书真的不好写 最好是做过很多cpp项目 结合项目进行展开 否则很容易想当然


谢谢,只好期待第二版的时候的改进了。downloading



获网友奖分21点(等于1点PP)  [详细记录]
-------------------------------------------------------------------------------------------
《易学C++》已由人民邮电出版社出版
http://www.tomatostudio.net.cn/
优惠订购《易学C++》网址
http://www.china-pub.com/39862

发表于:2008-05-11 11:50:49
推荐:有人说是MM越轨图 [图]   by lancer  [1325/17]   [奖励PP] ...第14楼...

Ryan
92133

来自:上海
注册:2005-02-14
发帖:43+4780 
定义下的太绝对,后面黑体字与其在解释一边,不如找个现实的例子说一下,比如7L的



-------------------------------------------------------------------------------------------
AMD X2 5000+
TR U120E
ASUS M3A32-MVP Deluxe
创建 DDR800 2G*2
QCH 2400XT&amp;nbsp;

发表于:2008-05-11 11:53:19
推荐:2008婚纱展拍MM [图]   by tjq  [786/22]   [奖励PP] ...第15楼...

520

来自:上海
注册:2008-03-20
发帖:9+276 
我觉得可以了
PROTECT估计你会写DNA遗传
懂的人肯定看得懂,不懂的人理解起来还是有点困难
LZ PM我一下联系方式



-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......

发表于:2008-05-11 11:53:21
推荐:马来西亚-热浪岛行 [图]   by 小花生  [802/73]   [奖励PP] ...第16楼...

199

来自:上海
注册:2008-04-22
发帖:5+948 
  引用:

引用:
例子举的不好
关于public与private的区分一方面是安全性的考虑 另一方面是分割接口与实现 提供弹性
这个例子看不出这样的含义

黑体字部分感觉可以删掉 一来太绝对 二来明白了public与private后很容易推的

cpp书真的不好写 最好是做过很多cpp项目 结合项目进行展开 否则很容易想当然

谢谢,只好期待第二版的时候的改进了。downloading


加油吧downloading我看好你哟downloading



-------------------------------------------------------------------------------------------
人生就像大便
有時候努力了半天
出來的卻只是一個屁。

发表于:2008-05-11 11:53:27

圆规㊣
3510339

来自:上海
注册:2001-02-05
发帖:1491+22104 
downloading



-------------------------------------------------------------------------------------------
M &amp;euml; a C ú l p a

发表于:2008-05-11 11:54:23
推荐:08婚纱展发生的事 [图]   by 幸运☆鲁克  [472/11]   [奖励PP] ...第18楼...

番茄
72543

来自:上海
注册:2001-08-12
发帖:143+1584 
  引用:
定义下的太绝对,后面黑体字与其在解释一边,不如找个现实的例子说一下,比如7L的

7L的例子我可以理解,特别在操作系统之类的情况下应该要有非常好的安全性。但是,对于一个连对象是什么都还搞不清楚的,和他们说这些例子,有用么?downloading
我的定位还是基础普及教程,只要能先接受概念就达到了主要的目的。至于更深入地理解,那是以后的问题。



-------------------------------------------------------------------------------------------
《易学C++》已由人民邮电出版社出版
http://www.tomatostudio.net.cn/
优惠订购《易学C++》网址
http://www.china-pub.com/39862

发表于:2008-05-11 11:56:35
推荐:婚纱,蹭两张 [图]   by 小武哥  [1599/15]   [奖励PP] ...第19楼...

1199

来自:保密
注册:2007-05-30
发帖:5+341 
downloadingdownloading



-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......

发表于:2008-05-11 12:01:39

LG
7205

来自:海外
注册:2003-12-17
发帖:107+949 
感觉private/public都是没意义的,不如用struct。
即使你给别人lib和.h,private里的东西还是暴露的,改一下h的private为public就可以操作private里面的数据了,有意义吗



-------------------------------------------------------------------------------------------
Everlasting~~~!

发表于:2008-05-11 12:05:45
推荐:重发,昨天大宁抓拍MM [图]   by Gucci  [2718/19]   [奖励PP] ...第21楼...

mj
7980

来自:上海
注册:2004-06-27
发帖:372+2057 
  引用:
感觉private/public都是没意义的,不如用struct。
即使你给别人lib和.h,private里的东西还是暴露的,改一下h的private为public就可以操作private里面的数据了,有意义吗
一般给dll的吧downloading



-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......

发表于:2008-05-11 12:08:13

LG
7205

来自:海外
注册:2003-12-17
发帖:107+950 
对于DLL来说,用struct 和 class更没有区别了
class还存在对于不同编译器链接的问题



-------------------------------------------------------------------------------------------
Everlasting~~~!

发表于:2008-05-11 12:12:55

mj
7980

来自:上海
注册:2004-06-27
发帖:372+2058 
  引用:
对于DLL来说,用struct 和 class更没有区别了
downloading维萨



-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......

发表于:2008-05-11 12:16:11
推荐:尼康D700真的已经来了 [图]   by 啸面虎  [1200/38]   [奖励PP] ...第24楼...

23321

来自:上海
注册:2003-01-01
发帖:15+1999 
黑体字不准确啊,纯private的类继承一下不就有意义了嘛



-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......

发表于:2008-05-11 12:16:42
推荐:女仆就是嗲呀  by 巴尔坦小韩  [576/19]   [奖励PP] ...第25楼...

LG
7205

来自:海外
注册:2003-12-17
发帖:107+951 
7L说的所有方法都是private,应该不可以初始化吧?
即使singleton也是有一个public static的初始化



-------------------------------------------------------------------------------------------
Everlasting~~~!

发表于:2008-05-11 12:17:55

LG
7205

来自:海外
注册:2003-12-17
发帖:107+952 
constrcutor也是private呢?怎么inheritance?



-------------------------------------------------------------------------------------------
Everlasting~~~!

发表于:2008-05-11 12:19:11
推荐:下雨了 [图]   by lancer  [1968/26]   [奖励PP] ...第27楼...

番茄
72543

来自:上海
注册:2001-08-12
发帖:143+1586 
  引用:
7L说的所有方法都是private,应该不可以初始化吧?
即使singleton也是有一个public static的初始化

我也想问这个问题downloading



-------------------------------------------------------------------------------------------
《易学C++》已由人民邮电出版社出版
http://www.tomatostudio.net.cn/
优惠订购《易学C++》网址
http://www.china-pub.com/39862

发表于:2008-05-11 12:21:31
推荐:海南三亚[风景篇] [图]   by 阿迷  [564/22]   [奖励PP] ...第28楼...

LG
7205

来自:海外
注册:2003-12-17
发帖:107+953 
所以在OOP范围内,我认为楼主对于全部是private的类是无意义的说法是对的



-------------------------------------------------------------------------------------------
Everlasting~~~!

发表于:2008-05-11 12:21:36
推荐:瞬间的美丽 [图]   by FY  [718/16]   [奖励PP] ...第29楼...

mj
7980

来自:上海
注册:2004-06-27
发帖:372+2059 
  引用:
所以在OOP范围内,我认为楼主对于全部是private的类是无意义的说法是对的
downloading你指私有继承?



-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......

发表于:2008-05-11 12:28:09

LG
7205

来自:海外
注册:2003-12-17
发帖:107+954 
如果一个类的所有数据和操作都是私有的,那么它将完全与外界隔绝,这样的类也没有存在的意义。

我同意楼主的这句话,与继承无关。



-------------------------------------------------------------------------------------------
Everlasting~~~!

发表于:2008-05-11 12:31:31
推荐:没有东方明珠你还认的出吗 [图]   by lancer  [3225/24]   [奖励PP] ...第31楼...

mj
7980

来自:上海
注册:2004-06-27
发帖:372+2060 
  引用:

引用:
对于DLL来说,用struct 和 class更没有区别了downloading维萨
ls快点回答这个



-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......

发表于:2008-05-11 12:33:11

Ricercar
187813

来自:上海
注册:2001-05-27
发帖:865+32065 
  引用:
封装是把一个对象的外部特征和内部实现细节分离开来,其它对象可以访问该对象的外部特征,但不能访问其内部实现细节。对象的封装是一种信息隐藏技术,其目的是将对象的使用者与设计者分开。在程序设计中,封装是指将一个数据和与这个数据有关的操作集合在一起,形成一个能动的实体----对象,用户不必知道对象行为的实现细节,只需根据对象提供的外部接口访问对象即可。封装不是面向对象语言所独有的特性,但这种在单一实体中把数据结构和行为捆绑在一起的能力,使封装比传统的把数据结构和行为分离的语言更加清晰、更强有力。



-------------------------------------------------------------------------------------------
ingenuous, right-minded, optimistic, freely, humor, adventurous, visioned

发表于:2008-05-11 12:34:10

番茄
72543

来自:上海
注册:2001-08-12
发帖:143+1587 
  引用:

引用:
所以在OOP范围内,我认为楼主对于全部是private的类是无意义的说法是对的downloading你指私有继承?

如果基类的成员都是private的,那么无论用什么继承方式,它的派生类都是无法访问这些成员的。(或者我也可以认为这些成员根本没被继承下来)
另外正像LG兄所说,全private的怎么实现初始化啊?



-------------------------------------------------------------------------------------------