登陆论坛 找回密码 地图 帮助
宽带山生活
版主:saliven 麦克 银河 

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

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

feverzsj
903855

来自:上海
注册:2001-07-06
发帖:1206+15774 
设置这样的访问控制,是软件方法学多年来的经验总结,从最初的adt概念到object based的设计风格,再到oo,都是从大型工程中已经存在的问题中得到启发,并做出改正的,所以你没有实际开发经验,的确不是很容易理解这些访问控制、惯用法之类的东西到底有什么好处
比如,将类内数据的存取,限制给固定成员函数来完成,用户只能通过此接口来完成操作,这不仅是为了隐藏内部实现,也是将出错可能限定在单个接口上,使得排错变得明确,而不是分布在用户代码中。一个好的类接口应该对功能集有足够适当的抽象,这样即使内部数据如何改变,接口不变,那么用户代码只是需要重编译就可以了,这是另一个好处
还有cpp的私有访问控制比较特殊的用法,就是禁止特殊成员函数的使用,使得错误的访问在编译器被标识出来
至于继承方式,那么更有说法了
总之,如果lz没接触过实际项目,那么至少应该把the cpp programming language 这本书放在案头随时参阅

说些题外话:cpp近年来的趋势已经转向gp,即将到来的c++0x中的重大改革几乎都是对于模板的,尤其是concept,标准库也被大副增强,或许你该试试tr1库,感受一下下一代标准



-------------------------------------------------------------------------------------------
少思虑以养心气,寡色欲以养肾气,
常运动以养骨气,戒嗔怒以养肝气,
薄滋味以养胃气,省言语以养神气,
多读书以养胆气,顺时令以养元气。

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

无尽的混乱
55218

来自:海外
注册:2006-06-04
发帖:43+987 
。Net里面一个类,可以没有显式的New方法。所以,如果全部是Private,也是可以实例化的。隐式的实例化。C++不懂,但是对于设计模式什么的,还是看过不少的。



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

发表于:2008-05-11 12:57:46
推荐:体验镜王2.8的魅力 [图]   by 火焰  [813/24]   [奖励PP] ...第51楼...

Ricercar
187813

来自:上海
注册:2001-05-27
发帖:865+32068 
  引用:
。Net里面一个类,可以没有显式的New方法。所以,如果全部是Private,也是可以实例化的。隐式的实例化。C++不懂,但是对于设计模式什么的,还是看过不少的。


datarow类没有public的构造函数,所以没能用new操作符构建



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

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

番茄
72543

来自:上海
注册:2001-08-12
发帖:143+1592 
  引用:
设置这样的访问控制,是软件方法学多年来的经验总结,从最初的adt概念到object based的设计风格,再到oo,都是从大型工程中已经存在的问题中得到启发,并做出改正的,所以你没有实际开发经验,的确不是很容易理解这些访问控制、惯用法之类的东西到底有什么好处
比如,将类内数据的存取,限制给固定成员函数来完成,用户只能通过此接口来完成操作,这不仅是为了隐藏内部实现,也是将出错可能限定在单个接口上,使得排错变得明确,而不是分布在用户代码中。一个好的类接口应该对功能集有足够适当的抽象,这样即使内部数据如何改变,接口不变,那么用户代码只是需要重编译就可以了,这是另一个好处
还有cpp的私有访问控制比较特殊的用法,就是禁止特殊成员函数的使用,使得错误的访问在编译器被标识出来
至于继承方式,那么更有说法了
总之,如果lz没接触过实际项目,那么至少应该把the cpp programming language 这本书放在案头随时参阅

说些题外话:cpp近年来的趋势已经转向gp,即将到来的c++0x中的重大改革几乎都是对于模板的,尤其是concept,标准库也被大副增强,或许你该试试tr1库,感受一下下一代标准

嗯,的确很高手,很前沿。但是请注意我这个是C++的入门教程,我的任务只是让初学者理解面向对象,并开始逐渐适应。至于如何深刻理解,这个要看各个人的造化了。这位兄台您大学三年级的时候已经深刻理解OO了么?如果是的话我深感佩服!

另外,我相信市面上比我的书误人子弟的C++的书多得去了。downloading



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

发表于:2008-05-11 13:17:02
推荐:9月杂片 No.1 [图]   by Telecaster  [639/34]   [奖励PP] ...第53楼...

feverzsj
903855

来自:上海
注册:2001-07-06
发帖:1206+15778 
  引用:
嗯,的确很高手,很前沿。但是请注意我这个是C++的入门教程,我的任务只是让初学者理解面向对象,并开始逐渐适应。至于如何深刻理解,这个要看各个人的造化了。这位兄台您大学三年级的时候已经深刻理解OO了么?如果是的话我深感佩服!

另外,我相信市面上比我的书误人子弟的C++的书多得去了。


这些都是已经被多次强调,已经被明确认定为一种基本法则的东西,cpp主要还是给计算机相关专业的人学习的,相信工程人员还是更喜欢vhdl,fortran之类的特殊目的的语言
cpp的目标群很大,但是如果没有比较好的相关基础知识,那么也许cpp并不适合他们,相反很多oo语言比cpp对于oo而言更专一更明确,也更容易学习
所以即使是入门书籍,也应该明确cpp的针对群体,应该保证一本公开发行的书的良心,知之为知之,引经据典,那么也不会大错



-------------------------------------------------------------------------------------------
少思虑以养心气,寡色欲以养肾气,
常运动以养骨气,戒嗔怒以养肝气,
薄滋味以养胃气,省言语以养神气,
多读书以养胆气,顺时令以养元气。

发表于:2008-05-11 13:27:19

LG
7205

来自:海外
注册:2003-12-17
发帖:107+958 
的确,我也认为STL应该也作为和OOP一样重点的位置提出,即使是对于初学者。
作为对图灵完备性不同的诠释,不同的方法可以让读者更加深刻的理解程序和语言的实质。



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

发表于:2008-05-11 13:36:21
推荐:我拍的泰国人妖.... [图]   by 小蚯蚓落落  [13794/42]   [奖励PP] ...第55楼...

LG
7205

来自:海外
注册:2003-12-17
发帖:107+959 
比如tr1中添加的regular expression, 在实际工程中具有广泛的应用价值。在理论上,也可以延伸到编译原理的自动机理论,很有教学意义。



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

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

回复主题 [ 返回KDS宽带山 ]
主题: 关于C++里的public和private
回复话题
手机看宽带山

关于我们 - 联系我们 - 加入我们 - 营销服务 - 友情链接 - 频道合作- PChome Widget
Copyright © 1996-2008 PChome.net All rights reserved. 电脑之家 版权所有