znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
20楼#
发布于:2002-10-22 12:55
hehe.此封装和彼封装不一样哟

c++ 和汇编的封装不是一会事,是思想方法的改变

曾经听过一个笑话:
c++ 是面向对象的吧,那c++最后要生成汇编代码,然后是机器码,这就是说机器码也是面向对象的?    
所以封装不是简单的把一些代码放在一起,是客观世界的抽象和进一步的具体化。
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2002-10-22 12:59
hehe.此封装和彼封装不一样哟

c++ 和汇编的封装不是一会事,是思想方法的改变

曾经听过一个笑话:
c++ 是面向对象的吧,那c++最后要生成汇编代码,然后是机器码,这就是说机器码也是面向对象的?    
所以封装不是简单的把一些代码放在一起,是客观世界的抽象和进一步的具体化。

霍霍,但封装只是一种思想而已。你说用private可以封装数据,那我偏要把它改成public,就封不住了。所以我说的用函数来封装系统相关,意思是上层完全和我这些打交道,不要绕过我去动系统,这应该就是封装思想。但如果有人偏喜欢绕过我,防不住,任何语言都防不住。
结论:愚以为,OO是人类的一种思想,而不是哪个语言的特性。
就算用Java,号称都用类包装了,但一样可以写的很不OO
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2002-10-22 13:03
OO不OO是认识问题的角度不同,传统的是从功能或数据流看待系统。而OO要实现的是从事物或对象去看系统。好处是符合人的思维。而且功能是易变的,对象相对稳定,通过封装限制了功能的作用于域。
书上这么说的
我不仅要金子,我还要点石成金的手指!
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
23楼#
发布于:2002-10-22 13:14
haha,花猫还是没明白什么是oo.................

oo不是简单地把函数或数据放到class中........

是一种更高层的抽象..
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2002-10-22 13:21
恩,不是把东西扔到class里就是OO了,我觉得我现在很不自觉的就犯这种错误,叫把功能函数class化。我觉得问题出在怎么划分类,怎么抽象出对象。
我不仅要金子,我还要点石成金的手指!
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2002-10-22 13:22
haha,花猫还是没明白什么是oo.................

oo不是简单地把函数或数据放到class中........

是一种更高层的抽象..

不要太深奥……………………………………
怎么抽象?我想写个美女类,先写个“人”,里面有眼睛鼻子,然后派生个“女人”,加上一些………………,然后派生个“美女”,里面有个属性叫“养眼”。
够抽象了,我用汇编一样可以实现,VTable指针+数据(鼻子,眼睛)+方法,OK?
思想是思想,实现是实现,没有思想即使用Java也无法实现OO,有了思想,汇编完全可以实现OO。C++编译器干的事,是替你生成VTable,管理类布局,等等。
汇编本身不是OO语言,但不是说它不能实现OO,否则C++也不用编译了。国外的那些职业asm程序员,不可能不和OO打交道,怎么打?看汇编啊。
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2002-10-22 13:23
恩,不是把东西扔到class里就是OO了,我觉得我现在很不自觉的就犯这种错误,叫把功能函数class化。我觉得问题出在怎么划分类,怎么抽象出对象。

这就是传说的思想,但实现时还是要把东西扔到class里
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
27楼#
发布于:2002-10-22 13:25
[quote]恩,不是把东西扔到class里就是OO了,我觉得我现在很不自觉的就犯这种错误,叫把功能函数class化。我觉得问题出在怎么划分类,怎么抽象出对象。

这就是传说的思想,但实现时还是要把东西扔到class里 [/quote]
呵呵,不矛盾
我不仅要金子,我还要点石成金的手指!
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
28楼#
发布于:2002-10-22 13:27
[quote][quote]恩,不是把东西扔到class里就是OO了,我觉得我现在很不自觉的就犯这种错误,叫把功能函数class化。我觉得问题出在怎么划分类,怎么抽象出对象。

这就是传说的思想,但实现时还是要把东西扔到class里 [/quote]
呵呵,不矛盾 [/quote]
是啊,当然不矛盾。
很多OOP的书,主要是讲思想,最多用C++示范,如果它用汇编示范,理论上可以,但它可能首先用几百页告诉你怎样构造一个类。
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
29楼#
发布于:2002-10-22 13:29
但是有个问题,C++是OOPL,而汇编不是,至少汇编里不能类继承,虽然其他的汇编都可以控制
我不仅要金子,我还要点石成金的手指!
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
30楼#
发布于:2002-10-22 13:30
而且现在提出了一个主动对象的咚咚,弄得我晕晕
我不仅要金子,我还要点石成金的手指!
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
31楼#
发布于:2002-10-22 13:31
但是有个问题,C++是OOPL,而汇编不是,至少汇编里不能类继承,虽然其他的汇编都可以控制

理论上你自己可以手工构造类,也可以继承,只不过超麻烦。
TASM对OO有支持,但我没仔细看过,不清楚它怎么实现,反正是比较弱的实现
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
32楼#
发布于:2002-10-22 13:33
不会是自己编个编译器来支持把?
我不仅要金子,我还要点石成金的手指!
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
33楼#
发布于:2002-10-22 13:34
不会是自己编个编译器来支持把?

当然不用
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
34楼#
发布于:2002-10-22 13:37
还有多态性
我不仅要金子,我还要点石成金的手指!
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
35楼#
发布于:2002-10-22 13:38
还有多态性

VTable支持
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
right_wind
驱动中牛
驱动中牛
  • 注册日期2001-10-12
  • 最后登录2018-05-29
  • 粉丝1
  • 关注0
  • 积分60分
  • 威望66点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
36楼#
发布于:2002-10-22 13:39
oo博大精深,值得好好学习。建议将本贴放到技术版里。 :)
good good study, day day up。
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
37楼#
发布于:2002-10-22 13:41
oo博大精深,值得好好学习。建议将本贴放到技术版里。 :)

灌水区人气旺,讨论之。
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
WindThruEars
驱动老牛
驱动老牛
  • 注册日期2002-11-17
  • 最后登录2004-07-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
38楼#
发布于:2002-10-22 13:44
怎么到后来开始讨论语言和OO的关系了?

汇编当然可以实现OO,只要你高兴,谁管你了,只要你开心,你用机器码都没人说你傻瓜,相反大家都会用仰慕的眼光看着你:“看看人家,机器码使得比咱们C++还熟”,牛!除了牛还是牛!公牛母牛黄牛加牦牛总之是牛!

不管什么语言,写代码多了多少带了点OO的思想,跟你懂不懂OO都没什么关系。OO还不就是一班从来不知道OO的人整出来的?

不过既然人家花了老大的心思整出来了,咱门也就让人家有点成就感,大家去试试看嘛。人家的design pattern咱们也去看看就算是挑挑刺找个茬子跟那gang of four单挑。人家的framework也去瞅瞅,MFC, OWL, MVC,qie,一边去,咱不定能整个更高级的出来。让那些年薪百万的chief architecture留着哈拉兹趴在地上看着咱。

C++? SmallTalk? OO PASCAL? Java? C#? 什么玩意吗?上次咱那个叫什么什么名字来着的Z++++牛皮多了,效率也高多了,机器码都没那么牛(因为优化得好)!

不过在这所有一切之前,咱还是先耐心地看看(学习就不必了,咱只是挑挑刺)那些老前辈(其实比咱也大部了几岁嘛)都辛苦地折腾了些啥。

差点忘了,OO算个啥?!?干吗要面向对象?面向mm不是更好?男人和mm心理是不一样的嘛,怎么可以用一个面向呢?以后gg用OMM,MM有OGG,qie,那样保证gg,mm都有无限热情把有限的生命投入到无限的为软件服务当中去。

qie,我都不知道自己说了些啥。酒喝得有点多了。
我是假耳朵
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
39楼#
发布于:2002-10-22 13:49
呵呵!耳边风成醉鸟了
游客

返回顶部