主题:关于C++里的public和private
725
55
来自:上海
注册:2001-08-12
发帖:143+1581
发表于:2008-05-11 11:40:24
19
7
来自:上海
注册:2008-04-22
发帖:5+943

LZ散我点pp吧
[此贴子已经被作者于 2008-05-11 11:41:31 编辑过]
-------------------------------------------------------------------------------------------
人生就像大便
有時候努力了半天
出來的卻只是一個屁。
发表于:2008-05-11 11:40:45
82
175
来自:上海
注册:2008-02-22
发帖:31+2060
-------------------------------------------------------------------------------------------
F水不流外人田!
发表于:2008-05-11 11:41:22
1438
8
来自:上海
注册:2002-07-04
发帖:1392+32090
这个比喻有点。。。
-------------------------------------------------------------------------------------------
crazy bear...
发表于:2008-05-11 11:41:40
1310
73
来自:上海
注册:2004-01-04
发帖:546+6443
-------------------------------------------------------------------------------------------
知道什么是死,才能够更好的活
su_520@hotmail.com
发表于:2008-05-11 11:42:08
19
8
来自:上海
注册:2008-04-22
发帖:5+944

谢谢LZ...虽然没看过你的作品
-------------------------------------------------------------------------------------------
人生就像大便
有時候努力了半天
出來的卻只是一個屁。
发表于:2008-05-11 11:45:24
65
295
来自:上海
注册:2008-02-26
发帖:3+2586
-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......
发表于:2008-05-11 11:46:04
552
15
来自:海外
注册:2006-06-04
发帖:43+985
一个类,所有的方法和变量都是私有的,也是有意义的。
一些核心的类,就是这样的,实例化后,所有的操作都是类内部自动完成的。比如监视器,队列调整等等
-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......
发表于:2008-05-11 11:46:04
123
87
来自:上海
注册:2006-08-11
发帖:133+5568
还是买点相关的书看看
-------------------------------------------------------------------------------------------
少量CDMA无线上网!年卡,季卡!不计漫游费用!每个月使用200小时!需要的PM我!QQ58628144 
发表于:2008-05-11 11:46:39
804
18
来自:上海
注册:2002-12-16
发帖:103+4950
例子举的不好
关于public与private的区分一方面是安全性的考虑 另一方面是分割接口与实现 提供弹性
这个例子看不出这样的含义
黑体字部分感觉可以删掉 一来太绝对 二来明白了public与private后很容易推的
cpp书真的不好写 最好是做过很多cpp项目 结合项目进行展开 否则很容易想当然
-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......
发表于:2008-05-11 11:46:53
2097
0
来自:上海
注册:2001-01-25
发帖:1594+26522
结构和类有区别?


-------------------------------------------------------------------------------------------
Primal eyes
发表于:2008-05-11 11:48:11
1352
4
来自:上海
注册:2000-10-17
发帖:131+5388
事实上,当前的很多语言,都不建议把数据(Field)直接public出来,都通过Method对Field进行封装。进一步可以衍生出Readonly的Field。
-------------------------------------------------------------------------------------------
这个家伙吝啬,什么也没留下......
发表于:2008-05-11 11:49:47
72
42
来自:保密
注册:2008-02-21
发帖:12+313
-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......
发表于:2008-05-11 11:50:04
65
297
来自:上海
注册:2008-02-26
发帖:3+2590
帮顶
-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......
发表于:2008-05-11 11:50:21
725
40
来自:上海
注册:2001-08-12
发帖:143+1583
引用: 例子举的不好 关于public与private的区分一方面是安全性的考虑 另一方面是分割接口与实现 提供弹性 这个例子看不出这样的含义
黑体字部分感觉可以删掉 一来太绝对 二来明白了public与private后很容易推的
cpp书真的不好写 最好是做过很多cpp项目 结合项目进行展开 否则很容易想当然 |
谢谢,只好期待第二版的时候的改进了。

获网友奖分21点(等于1点PP)
[详细记录]
-------------------------------------------------------------------------------------------
《易学C++》已由人民邮电出版社出版
http://www.tomatostudio.net.cn/
优惠订购《易学C++》网址
http://www.china-pub.com/39862
发表于:2008-05-11 11:50:49
921
33
来自:上海
注册:2005-02-14
发帖:43+4780
定义下的太绝对,后面黑体字与其在解释一边,不如找个现实的例子说一下,比如7L的
-------------------------------------------------------------------------------------------
AMD X2 5000+
TR U120E
ASUS M3A32-MVP Deluxe
创建 DDR800 2G*2
QCH 2400XT 
发表于:2008-05-11 11:53:19
52
0
来自:上海
注册:2008-03-20
发帖:9+276
我觉得可以了
PROTECT估计你会写DNA遗传
懂的人肯定看得懂,不懂的人理解起来还是有点困难
LZ PM我一下联系方式
-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......
发表于:2008-05-11 11:53:21
19
9
来自:上海
注册:2008-04-22
发帖:5+948
引用:
引用: 例子举的不好 关于public与private的区分一方面是安全性的考虑 另一方面是分割接口与实现 提供弹性 这个例子看不出这样的含义
黑体字部分感觉可以删掉 一来太绝对 二来明白了public与private后很容易推的
cpp书真的不好写 最好是做过很多cpp项目 结合项目进行展开 否则很容易想当然
谢谢,只好期待第二版的时候的改进了。 |
加油吧

我看好你哟

-------------------------------------------------------------------------------------------
人生就像大便
有時候努力了半天
出來的卻只是一個屁。
发表于:2008-05-11 11:53:27
3510
339
来自:上海
注册:2001-02-05
发帖:1491+22104
-------------------------------------------------------------------------------------------
M ë a C ú l p a
发表于:2008-05-11 11:54:23
725
43
来自:上海
注册:2001-08-12
发帖:143+1584
引用: 定义下的太绝对,后面黑体字与其在解释一边,不如找个现实的例子说一下,比如7L的 |
7L的例子我可以理解,特别在操作系统之类的情况下应该要有非常好的安全性。但是,对于一个连对象是什么都还搞不清楚的,和他们说这些例子,有用么?

我的定位还是基础普及教程,只要能先接受概念就达到了主要的目的。至于更深入地理解,那是以后的问题。
-------------------------------------------------------------------------------------------
《易学C++》已由人民邮电出版社出版
http://www.tomatostudio.net.cn/
优惠订购《易学C++》网址
http://www.china-pub.com/39862
发表于:2008-05-11 11:56:35
119
9
来自:保密
注册:2007-05-30
发帖:5+341
-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......
发表于:2008-05-11 12:01:39
720
5
来自:海外
注册:2003-12-17
发帖:107+949
感觉private/public都是没意义的,不如用struct。
即使你给别人lib和.h,private里的东西还是暴露的,改一下h的private为public就可以操作private里面的数据了,有意义吗
-------------------------------------------------------------------------------------------
Everlasting~~~!
发表于:2008-05-11 12:05:45
798
0
来自:上海
注册:2004-06-27
发帖:372+2057
引用: 感觉private/public都是没意义的,不如用struct。 即使你给别人lib和.h,private里的东西还是暴露的,改一下h的private为public就可以操作private里面的数据了,有意义吗 |
一般给dll的吧

-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......
发表于:2008-05-11 12:08:13
720
5
来自:海外
注册:2003-12-17
发帖:107+950
对于DLL来说,用struct 和 class更没有区别了
class还存在对于不同编译器链接的问题
-------------------------------------------------------------------------------------------
Everlasting~~~!
发表于:2008-05-11 12:12:55
798
0
来自:上海
注册:2004-06-27
发帖:372+2058
引用: 对于DLL来说,用struct 和 class更没有区别了 |

维萨
-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......
发表于:2008-05-11 12:16:11
233
21
来自:上海
注册:2003-01-01
发帖:15+1999
黑体字不准确啊,纯private的类继承一下不就有意义了嘛
-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......
发表于:2008-05-11 12:16:42
720
5
来自:海外
注册:2003-12-17
发帖:107+951
7L说的所有方法都是private,应该不可以初始化吧?
即使singleton也是有一个public static的初始化
-------------------------------------------------------------------------------------------
Everlasting~~~!
发表于:2008-05-11 12:17:55
720
5
来自:海外
注册:2003-12-17
发帖:107+952
constrcutor也是private呢?怎么inheritance?
-------------------------------------------------------------------------------------------
Everlasting~~~!
发表于:2008-05-11 12:19:11
725
43
来自:上海
注册:2001-08-12
发帖:143+1586
引用: 7L说的所有方法都是private,应该不可以初始化吧? 即使singleton也是有一个public static的初始化 |
我也想问这个问题

-------------------------------------------------------------------------------------------
《易学C++》已由人民邮电出版社出版
http://www.tomatostudio.net.cn/
优惠订购《易学C++》网址
http://www.china-pub.com/39862
发表于:2008-05-11 12:21:31
720
5
来自:海外
注册:2003-12-17
发帖:107+953
所以在OOP范围内,我认为楼主对于全部是private的类是无意义的说法是对的
-------------------------------------------------------------------------------------------
Everlasting~~~!
发表于:2008-05-11 12:21:36
798
0
来自:上海
注册:2004-06-27
发帖:372+2059
引用: 所以在OOP范围内,我认为楼主对于全部是private的类是无意义的说法是对的 |

你指私有继承?
-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......
发表于:2008-05-11 12:28:09
720
5
来自:海外
注册:2003-12-17
发帖:107+954
如果一个类的所有数据和操作都是私有的,那么它将完全与外界隔绝,这样的类也没有存在的意义。
我同意楼主的这句话,与继承无关。
-------------------------------------------------------------------------------------------
Everlasting~~~!
发表于:2008-05-11 12:31:31
798
0
来自:上海
注册:2004-06-27
发帖:372+2060
引用:
引用: 对于DLL来说,用struct 和 class更没有区别了 维萨 |
ls快点回答这个
-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......
发表于:2008-05-11 12:33:11
1878
13
来自:上海
注册:2001-05-27
发帖:865+32065
引用: 封装是把一个对象的外部特征和内部实现细节分离开来,其它对象可以访问该对象的外部特征,但不能访问其内部实现细节。对象的封装是一种信息隐藏技术,其目的是将对象的使用者与设计者分开。在程序设计中,封装是指将一个数据和与这个数据有关的操作集合在一起,形成一个能动的实体----对象,用户不必知道对象行为的实现细节,只需根据对象提供的外部接口访问对象即可。封装不是面向对象语言所独有的特性,但这种在单一实体中把数据结构和行为捆绑在一起的能力,使封装比传统的把数据结构和行为分离的语言更加清晰、更强有力。 |
-------------------------------------------------------------------------------------------
ingenuous, right-minded, optimistic, freely, humor, adventurous, visioned
发表于:2008-05-11 12:34:10
725
43
来自:上海
注册:2001-08-12
发帖:143+1587
引用:
引用: 所以在OOP范围内,我认为楼主对于全部是private的类是无意义的说法是对的 你指私有继承? |
如果基类的成员都是private的,那么无论用什么继承方式,它的派生类都是无法访问这些成员的。(或者我也可以认为这些成员根本没被继承下来)
另外正像LG兄所说,全private的怎么实现初始化啊?
-------------------------------------------------------------------------------------------