CNDEV
CNDEV.ORG
当前在线
论坛
CBD
程序员情感CBD
程序员见面交流会
CBD开发区
Java/J2ME
.NET/C#
数据库
Delphi/BCB
Visual C
其它
修真养身
中国象棋
纪念日
谈钱太俗,还是投机吧
听音乐
iCosta
资源共享
一隅
好文共赏
看电影看美剧
待定
狗屎
雪域召唤
工作流
专业显摆区
语录
情感
批评与自我批评
爱情故事
发牢骚
看三点区
游戏
CNDEV-CS/WOW
浩宇长空
生活
家有XPH
我爱学英语
美食天地ORG
半调子体育迷
观澳园友邻
搞笑奇文
拍照片
我读书我存在
论坛系统
超级垃圾站
系统建议及BUG
系统测试
中国开发网
: 论坛:
程序员情感CBD
: 贴子 248565
JoJo
:
接口继承跟多重继承不一样
[阅读: 607] 2005-11-29 05:27:37
接口甚至都不是OO理论的一部分
相关信息:
C++0x 的设计 (3)
(1038字)
(
holly
[1001]
2005-11-29 12:18
)
太通用就较难用。语言是语言,类库是类库。看来标准中加入string和STL也是一种妥协啊。
(空) (
sealw
[641]
2005-11-29 12:27
)
那还是库. 不是语言
(11字)
(
holly
[557]
2005-11-29 12:29
)
是啊,本来C++标准那帮人说,我们就搞语言标准就行了。所以刚提出STL时,是被多数人拍死的。但看到java的库这么成功,又有点心有不甘的样子。加上鼓吹的人特别努力,就妥协了一下。不……
(空) (
sealw
[708]
2005-11-29 12:33
)
stl先,还是java库先?而且貌似两个的差异很大吧,c++的确很缺乏像java那样的成熟的商业framework
(空) (
周星驰
[604]
2005-11-29 12:40
)
我是说当有人提出来想把STL搞到标准里去的时候
(空) (
sealw
[531]
2005-11-29 12:44
)
库以后可以扩展,开发者可以按层次选择要不要。语言就要预先定死了
(81字)
(
haitao
[687]
2005-11-29 12:51
)
c++的stl显然属于苦,不属于语言,关键点在c++不是单根类。。
(52字)
(
老玉米
[839]
2005-11-29 12:57
)
单根类型的语言必须有基本类型库才可以work?
(10字)
(
JoJo
[568]
2005-11-29 12:59
)
我个人是这么认为的。
(空) (
老玉米
[495]
2005-11-29 13:00
)
你研究一下java,c#这些单根语言的数据结构的实现方式和stl的区别,就知道了。
(空) (
老玉米
[722]
2005-11-29 13:01
)
不是因为这个
(68字)
(
holly
[564]
2005-11-29 13:02
)
你说得这是另外一个问题。
(空) (
老玉米
[527]
2005-11-29 13:05
)
象你那样拿语言跟库比较显然没什么可比性
(空) (
holly
[591]
2005-11-29 13:06
)
我只是说:有些语言是要内置一个基本类型库德,c++没有,所以实现库的时候离不开
(65字)
(
老玉米
[588]
2005-11-29 13:09
)
没有哪一种语言是一定需要类库的
(空) (
JoJo
[613]
2005-11-29 13:11
)
老玉米是就现有的 Java. c# 等语言说的
(30字)
(
holly
[554]
2005-11-29 13:12
)
这些语言的设计
(54字)
(
JoJo
[515]
2005-11-29 13:16
)
我们在讨论现实,你再说理论。
(18字)
(
老玉米
[619]
2005-11-29 13:20
)
你认为所有的类都要放在类库中?
(6字)
(
JoJo
[543]
2005-11-29 13:25
)
可以离开啊
(37字)
(
holly
[501]
2005-11-29 13:11
)
那不是oo了,或者不是通用库,你能把你自己定义的随便什么类型放到这鞋类库的数据结构里吗。。
(29字)
(
老玉米
[578]
2005-11-29 13:13
)
不同意
(86字)
(
holly
[558]
2005-11-29 13:16
)
你没弄清楚前提,oo是讨论的前提。。。那种void*的处理方式,显然是c的特性
(31字)
(
老玉米
[555]
2005-11-29 13:18
)
语言. 注意. 是高级语言
(14字)
(
holly
[599]
2005-11-29 13:19
)
我是说,OO须不需要单根都可以,但是会造成两个截然不同的实现类库的方式。
(6字)
(
老玉米
[573]
2005-11-29 13:25
)
大牛说得有道理,请参考《面向对象软件构造》第16.2 THE GLOBAL INHERITANCE STRUCTURE,void可以通配任何对象,从这点上来说与Object是一样的……
(空) (
sealw
[668]
2005-11-29 13:26
)
void*实际上部分充当了c++的根
(18字)
(
JoJo
[569]
2005-11-29 13:30
)
这不属于oo的范畴了。。
(空) (
老玉米
[505]
2005-11-29 13:30
)
以前BC++3.0就提供一个不用模板技术的容器类库,我看和jdk1.4以前的容器类一样通用嘛
(空) (
sealw
[615]
2005-11-29 13:20
)
jdk1.4以前的是没法对容器内容进行编译期类型限制的
(空) (
品雪
[563]
2005-11-29 13:22
)
我研究不出来
(25字)
(
JoJo
[529]
2005-11-29 13:02
)
我不这么认为. 呵呵
(空) (
holly
[507]
2005-11-29 13:01
)
ok,看看单根语言的Object
(49字)
(
老玉米
[804]
2005-11-29 13:02
)
也有不实现这些方法的
(14字)
(
JoJo
[531]
2005-11-29 13:04
)
老玉米说的 Object 就是指 Object 是语言的一部分
(空) (
holly
[516]
2005-11-29 13:05
)
I don't think so... The only difference lies on the compilation layer.
(753字)
(
空山新雨
[620]
2005-11-29 13:36
)
c++和java,c#最大的区别就在于是不是单根类。。
(63字)
(
老玉米
[1350]
2005-11-29 12:59
)
运算符重载是不能少的,我也是第一次听说
(空) (
JoJo
[524]
2005-11-29 13:01
)
可以少
(25字)
(
holly
[615]
2005-11-29 13:04
)
我到认为运算符重载是多余的部分
(17字)
(
JoJo
[649]
2005-11-29 13:05
)
提供运算符重载是为了统一元类型和类类型
(19字)
(
品雪
[586]
2005-11-29 13:05
)
关键在于运算符重载并不限制语义.
(13字)
(
holly
[537]
2005-11-29 13:07
)
所以必须清楚string a = b + c;后面到底发生了什么。
(空) (
sealw
[544]
2005-11-29 13:09
)
知道了这个程序的a=b+c后,不等于另一个程序的a=b+c也是这么作的
(15字)
(
haitao
[542]
2005-11-29 13:11
)
海涛把问题泛化了
(64字)
(
holly
[572]
2005-11-29 13:13
)
对于函数,这个不同本来就是有心理准备的。。。
(12字)
(
haitao
[577]
2005-11-29 13:16
)
有操作符重载就得有这个心理准备
(12字)
(
holly
[541]
2005-11-29 13:16
)
颠覆你的基础,打破你的心理底线,让你彻底崩溃
(空) (
sealw
[581]
2005-11-29 13:29
)
这样啊
(81字)
(
GoodHope
[575]
2005-11-29 13:16
)
对了,that's the point..
(41字)
(
老玉米
[672]
2005-11-29 13:10
)
This is JUST the difference of explicit and implicit translation of objects to code...
(空) (
空山新雨
[480]
2005-11-29 13:43
)
我认为,多重继承是个OO理论还没有彻底解决的陷阱。Java和C#不想掉入这个陷阱,而C++却掉进去但永远没有出来
(空) (
李战
[583]
2005-11-29 13:11
)
不是说没有充分的证据证明多重继承是必须的么?
(空) (
疯子张
[527]
2005-11-29 13:14
)
骡子算证据么?
(空) (
GoodHope
[448]
2005-11-29 13:16
)
在Java和C#环境中,想把两个不相关的类的共同点抽取出来,却发现这两个共同祖先只有object,这才想起C++的多重继承的好处
(空) (
李战
[801]
2005-11-29 13:21
)
In this situation, why not use aggregation
(空) (
空山新雨
[511]
2005-11-29 13:28
)
是啊,为什么不用组合?为什么不用接口?这个问题有涉及到数据与代码的哲学关系
(空) (
李战
[524]
2005-11-29 13:35
)
Well this is the classic "is a" and "include". But I really don't think this matters with ……
(183字)
(
空山新雨
[705]
2005-11-29 13:40
)
继承观点偏重于以数据为中心的扩展,而组合观点偏重于以代码为中心的扩展。但他们的目的都是一样的,也就是说是可以统一的,但现在的软件理论还没有找到
(空) (
李战
[652]
2005-11-29 13:43
)
可在C++中如果多重继承中又会遇到两个父类之间有共同祖先也有不同祖先的时候
(135字)
(
李战
[1254]
2005-11-29 13:33
)
多继承机制本身是必须的,但是具体实现方式就未必要是c++多重继承这样子了
(空) (
品雪
[642]
2005-11-29 13:21
)
多重继承当然是必需的,如果你把interface也看作一种多重继承的话。。
(15字)
(
老玉米
[636]
2005-11-29 13:23
)
哈哈,在我看来,别说多继承,就是继承也不是必须的,OO也不是必须的。
(17字)
(
疯子张
[591]
2005-11-29 13:27
)
那你可以洗洗睡了,因为计算机也不是必需的
(36字)
(
老玉米
[577]
2005-11-29 13:28
)
就是,不知道这个世界上为什么会出现汇编语言呢?打孔不是一样可以写程序。
(空) (
GoodHope
[511]
2005-11-29 13:28
)
接口继承跟多重继承不一样
(15字)
(
JoJo
[606]
2005-11-29 13:27
)
其实,接口和继承并不冲突
(空) (
李战
[596]
2005-11-29 13:38
)
yes in the past
(空) (
空山新雨
[551]
2005-11-29 13:41
)
OOSC的提法是,多继承分为接口继承和实现继承两种情况
(空) (
sealw
[596]
2005-11-29 13:42
)
OOSE是一种方法,类似一种工艺
(16字)
(
JoJo
[950]
2005-11-29 13:46
)
OOSC = Object Oriented Software Construction, OOSC != OOSE
(空) (
sealw
[755]
2005-11-29 13:48
)
Sory,看错了
(9字)
(
JoJo
[648]
2005-11-29 13:51
)
接口继承是面向代码的继承,实现继承是面向数据的继承,而一个对象一定包含数据和代码,关键要看数据和代码来自什么。OOSC是很有新意的
(空) (
李战
[608]
2005-11-29 13:49
)
我脚得c++的模板也好、操作符也好、宏也好、多重继承也好,其实都是丰富了c++语言本身的表现形式和方法
(330字)
(
周星驰
[934]
2005-11-29 13:49
)
只要清晰、易用、强大,我不关心那些属性是语言,那些是库的
(27字)
(
GoodHope
[665]
2005-11-29 13:13
)
欢迎光临本社区,您还没有登录,不能发贴子。请在
这里登录