作者wctang (wctang)
看板java
标题Re: [问题] 问一个新手问题
时间Fri Mar 28 18:06:40 2008
好像讲到 Java v.s. C++ 大家就会很 High :)
Soft_Job 里有人说 Java 强 C++ 不可能多弱,真是见鬼了,这话反过来说都不一定
对了。C++ 和 Java 我觉得只有语法象而已,因为大家都变惯C,所以看起来都像,
实际上的一个是语言,一个有 VM,一个完全静态,一个几乎完全动态,一个用 RAII,
一个连 destructor 都没有,说到 JavaDoc 也扯很远,C++ 也有一狗票类似的工具。
C++ 为什麽要用 header,因为他完全静态,为了相容 C 也不弄自已的物件模型
(其实 C++ 也没啥物件模型,就 struct+function,加上 vptr+vtbl,都是用 C 的观
念搞出来的),物件间彼此要互通就要用 header 这种方式来让对方 compile 时宣
告用,拆成 .h 和 .cpp 根本不是优点,是不得已的 (为了让别人用,但又不让别人知
道细节)。Java 根本不需要,Java 是几乎全动态的物件模型,所有的 Class 在
load 时才连结,对方有变动时自已根本不用变动,也不用重编译 (C++ 光这个就受了
,只动 private 也要大家都重编),只要执行时连得起来就行了 (之前有人说 .class
是小型的 DLL 大致上是这样没错)。在这种情况下 .java 档是怎麽写的根本不重要,
既然不重要就一个 .java 对一个 class 写在一起最好 (好像比较先进的语言都这样
,像 Delphi, C# 等等...)
呃,我好像也变得很 High...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.125.148.101
1F:推 godfat:听说 C# 可以分开写, by partial class 03/28 18:13
2F:→ wctang:godfat++ :) 真的有耶 03/28 18:16
3F:推 qrtt1:我c++很弱啊.. 不要再相信这种没有根据的说法了(笑) 03/28 18:31
4F:推 legnaleurc:语言动不动态不是这样分的吧?= = 03/28 22:32
5F:推 legnaleurc:C/C++的separate compile也不全是为了隐藏实作 03/28 22:34