c++和c#在代码上有什么区别
2007-07-29 09:37:00 zaowei22 阅读数 294

Ghosts (变化总是会发生的) 于 2001年12月21日11:40:56 星期五 提到:
java在运行时刻可以查询一个类的所有方法和属性,这样使得java的class文件有些类似
组件的感觉,而c++要通过特定的方法(如com)才能查询一个组件的方法。
c++虽然在后面的板本中引入了RTTI,但是不知道支持率如何(似乎不太有人用)。
java的这个特点似的java可以简单的实现Bean,可以在类型转换时检查错误。
另外较常规的差异就是java中没有多继承的概念,而是采用interface的方法,这种方式 JAVA天堂
看起来更完善一点,而且较少引入错误。
☆──────────────────────────────────────☆
gogow (gogow) 于 2001年12月21日15:09:04 星期五 提到:
一个简单的例子:
Java中每个数组都是对象;完全的面向对象!!
☆──────────────────────────────────────☆
CupTea (一杯清茶) 于 2001年12月21日15:26:07 星期五 提到:
关于这方面的内容可以看《thinking in java》的附录部分。
☆──────────────────────────────────────☆
mirrorjj (小镜子~~天之启示) 于 2001年12月22日15:58:03 星期六 提到:
java中所有的方法都是晚绑定的,
除非声明为final,
而c++中只有虚方法才是晚绑定的
☆──────────────────────────────────────☆
xiaohe (三戒) 于 2001年12月22日15:59:56 星期六 提到:
java中的变量名都是对象引用
java默认动态绑定
☆──────────────────────────────────────☆
blCoffee (闭关) 于 2001年12月22日21:37:45 星期六 提到: JAVA天堂
think in java开宗明义第一章:一切都是对象
☆──────────────────────────────────────☆
trope (就怕恐龙逃) 于 2001年12月23日11:02:35 星期天 提到:
我原来叫就怕恐龙不逃,结果被女朋友强行改成就怕恐龙逃了,55555555
特此纪念,关税一篇!!
☆──────────────────────────────────────☆
feifeijs (独立人~解放自己) 于 2001年12月23日11:34:28 星期天 提到:
hahahahahahahahaha
cft
☆──────────────────────────────────────☆
justsoso (及时行乐) 于 2001年12月23日11:41:49 星期天 提到:
呵呵,真是搞笑
你的gf真厉害呀

信区: Java
标 题: Re: 【合集】java和c++在面向对象上有什么区别?(null) , 站内信件
转载某人看法
Java语言和C#的一些区别
Java C#
默认情况下所有成员函数都可以被重载 默认情况下所有成员函数都不可以被重载
用final指出成员函数 不能 被重载 用virtual指出成员函数 可以 被重载
直接改写父类的成员函数 用override重载父类中可以被重载的成员函数


用final指出类不能被继承 用sealed指出类不能被继承
用abstract指出类必须被继承才能实例化 用abstract指出类必须被继承才能实例化
用abstract指出某成员函数必须被改写 用abstract指出某成员函数必须被改写
有(与类)同名的构造函数 有(与类)同名的构造函数和析构函数(~作为前缀)
不支持多继承,用extends表示继承 不支持多继承,用:表示继承
可以用implement实现多个接口,用逗号分隔 可以实现多个接口,同类的继承,用逗号
分隔
接口可以包含域(Field) 接口不能包含域(Field)
可以显式为接口的方法指定public修饰符(虽然不需要) 不能显式地为接口的方法指定
public修饰符
public interface IE extends IC,ID public interface IE:IC,ID
public class B extends A implements IC,ID public class B : A,IC,ID
A,B 都是类,IC,ID都是接口 A,B 都是类,IC,ID都是接口
用final表示常量 用const表示常量
package xxx.yyy.zzz; namespace xxx.yyy.zzz{}
import System.xxx.yyy; using System.xxx.yyy;
StringBuffer StringBuilder
文件名 必须 和public类同名 文件名可以和public类名称不同
由运行时环境管理,使用垃圾收集器 由运行时环境管理,使用垃圾收集器


源代码编译成IL代码 源代码编译成*.class代码
不能重载main方法 可以重载Main方法
switch语句只能处理整数 switch语句还可以处理字符串
没有goto 谨慎地使用goto
instanceof is
无对应操作符 as
有自己的类库 没有自己的类库,共享了.NET的类库
没有枚举类型 enum类型

全文阅读:http://www.javah.net/JAVAjichu/20070510/1003.html

2007-05-11 00:40:00 zaowei21 阅读数 650

Ghosts (变化总是会发生的) 于 2001年12月21日11:40:56 星期五 提到:
java在运行时刻可以查询一个类的所有方法和属性,这样使得java的class文件有些类似
组件的感觉,而c++要通过特定的方法(如com)才能查询一个组件的方法。
c++虽然在后面的板本中引入了RTTI,但是不知道支持率如何(似乎不太有人用)。
java的这个特点似的java可以简单的实现Bean,可以在类型转换时检查错误。
另外较常规的差异就是java中没有多继承的概念,而是采用interface的方法,这种方式 JAVA天堂
看起来更完善一点,而且较少引入错误。
☆──────────────────────────────────────☆
gogow (gogow) 于 2001年12月21日15:09:04 星期五 提到:
一个简单的例子:
Java中每个数组都是对象;完全的面向对象!!
☆──────────────────────────────────────☆
CupTea (一杯清茶) 于 2001年12月21日15:26:07 星期五 提到:
关于这方面的内容可以看《thinking in java》的附录部分。
☆──────────────────────────────────────☆
mirrorjj (小镜子~~天之启示) 于 2001年12月22日15:58:03 星期六 提到:
java中所有的方法都是晚绑定的,
除非声明为final,
而c++中只有虚方法才是晚绑定的
☆──────────────────────────────────────☆
xiaohe (三戒) 于 2001年12月22日15:59:56 星期六 提到:
java中的变量名都是对象引用
java默认动态绑定
☆──────────────────────────────────────☆
blCoffee (闭关) 于 2001年12月22日21:37:45 星期六 提到: JAVA天堂
think in java开宗明义第一章:一切都是对象
☆──────────────────────────────────────☆
trope (就怕恐龙逃) 于 2001年12月23日11:02:35 星期天 提到:
我原来叫就怕恐龙不逃,结果被女朋友强行改成就怕恐龙逃了,55555555
特此纪念,关税一篇!!
☆──────────────────────────────────────☆
feifeijs (独立人~解放自己) 于 2001年12月23日11:34:28 星期天 提到:
hahahahahahahahaha
cft
☆──────────────────────────────────────☆
justsoso (及时行乐) 于 2001年12月23日11:41:49 星期天 提到:
呵呵,真是搞笑
你的gf真厉害呀

信区: Java
标 题: Re: 【合集】java和c++在面向对象上有什么区别?(null) , 站内信件
转载某人看法
Java语言和C#的一些区别
Java C#
默认情况下所有成员函数都可以被重载 默认情况下所有成员函数都不可以被重载
用final指出成员函数 不能 被重载 用virtual指出成员函数 可以 被重载
直接改写父类的成员函数 用override重载父类中可以被重载的成员函数


用final指出类不能被继承 用sealed指出类不能被继承
用abstract指出类必须被继承才能实例化 用abstract指出类必须被继承才能实例化
用abstract指出某成员函数必须被改写 用abstract指出某成员函数必须被改写
有(与类)同名的构造函数 有(与类)同名的构造函数和析构函数(~作为前缀)
不支持多继承,用extends表示继承 不支持多继承,用:表示继承
可以用implement实现多个接口,用逗号分隔 可以实现多个接口,同类的继承,用逗号
分隔
接口可以包含域(Field) 接口不能包含域(Field)
可以显式为接口的方法指定public修饰符(虽然不需要) 不能显式地为接口的方法指定
public修饰符
public interface IE extends IC,ID public interface IE:IC,ID
public class B extends A implements IC,ID public class B : A,IC,ID
A,B 都是类,IC,ID都是接口 A,B 都是类,IC,ID都是接口
用final表示常量 用const表示常量
package xxx.yyy.zzz; namespace xxx.yyy.zzz{}
import System.xxx.yyy; using System.xxx.yyy;
StringBuffer StringBuilder
文件名 必须 和public类同名 文件名可以和public类名称不同
由运行时环境管理,使用垃圾收集器 由运行时环境管理,使用垃圾收集器


源代码编译成IL代码 源代码编译成*.class代码
不能重载main方法 可以重载Main方法
switch语句只能处理整数 switch语句还可以处理字符串
没有goto 谨慎地使用goto
instanceof is
无对应操作符 as
有自己的类库 没有自己的类库,共享了.NET的类库
没有枚举类型 enum类型

全文阅读:http://www.javah.net/JAVAjichu/20070510/1003.html

2016-08-08 21:09:41 qq_33642117 阅读数 1316

  众所周知,任何一门计算机高级语言都会最终编程机器码(也就是二进制)以后,才会被计算机所识别。其中,与机器码最为接近的就是汇编了,而JavaC++都会直接或间接的变成汇编之后,然后在运行。

   对于像c,c++这类高级计算机语言来说,它们的编译器(例如:UnixCC命令,WindowsCL命令)都是直接把源码直接编译成计算机可以认识的机器码,如exedll之类的文件,然后直接运行即可。

   Java语言的跨平台是它的最大亮点之一,为了达到平台惯性,它就不得不多一个中间步骤,也就是生成字节码文件。对于一个Java源文件来说,需要用javac命令把源文件编译成class文件,这个class文件是计算机无法直接识别的,但是却可以被Java虚拟机所认识,所以在运行一个Java程序的时候,肯定是要启动一个Java虚拟机,然后在由虚拟机去加载这些class文件,如图所示:


注意:class文件指的是字节码文件,而不专指类编译后的文件,不管是类,接口,枚举或其他类型,都是编译成class文件的。

解答如下:

c++源码编译以后,生成的是特定机器可以直接运行的文件,而Java源码经过编译后,生成的是中间的字节码文件,这些字节码文件是需要放在JVM中运行的,而JVM是有多个平台版本的。因此,Java是具有跨平台的,而C++没有。

 

2016-03-16 13:24:59 Jake2549794390 阅读数 373
c++编码编译以后,生成的是特定机器可以直接运行的文件,而java源码经过编译后,生成的是中间的字节码文件。这些字节码文件是需要放在JVM中运行的,而JVM是有多个平台版本的。因此,Java具有跨平台性,而c++没有。
2015-09-18 15:04:37 u012868077 阅读数 225
C++编译之后,生成的文件在特定的计算机可以直接运行;而Java源码进行编译之后生成的class文件,要通过Java虚拟机,才可以运行,这也体现了Java语言的跨平台性。

C#和C++有什么区别

阅读数 1013

内容会持续更新,有错误的地方欢迎指正,谢谢!突然想到,自己在用的C#和C++有什么区别?有点懵,对不对,但静下来想想,从非语言层面来看,C++的确有很多不同点:C++是面向对象的C语言,还多了STL这个标准模板库;C++针对系统底层,非常适用于开发操作系统层面的应用;C++缺乏现成的框架模板可以使用,开发难易程度大;C++需要自己管理内存、操作系统、任务调度、资源管理,很多都得自己来;但是

博文 来自: BillCYJ

C#引用C++代码

阅读数 51

 现在在Windows下的应用程序开发,VS.Net占据了绝大多数的份额。因此很多以前搞VC++开发的人都转向用更强大的VS.Net。在这种情况下,有很多开发人员就面临了如何在C#中使用C++开发好的类的问题。下面就用一个完整的实例来详细说明怎样用托管C++封装一个C++类以提供给C#使用。   比如,现在有一个工程名为NativeCppDll的由C++编写的DLL,里面输出了一个CPerson...

博文 来自: weixin_34406086

C++ 调用C#代码

阅读数 1174

转自:http://www.cnblogs.com/Jianchidaodi/archive/2009/03/11/1408661.html 上篇文章提到,目前项目想做到核心部分代码不被反编译,而考虑到团队成员都是比较熟悉C#,因此核心算法部分采用C++,而其他地方则采用C#(例如数据访问层,界面层都使用C#语言)。在上一篇文章中完成了C#托管代码调用C++非托管代码,现在接着完成第二部分,即C++非托管代码调用C#托管代码(源代码下载),分为两部分,

博文 来自: msapdev

C++调用C#代码

阅读数 541

本文将介绍C++中通过DLL来调用C#代码。首先建立C#的“类库”工程CShapeDLL。然后输入如下代码:[csharp] viewplaincopy//C++通过DLL调用C#代码  //http://blog.csdn.net/morewindows/article/details/8678431  //By More

博文 来自: unify6

C#调用C++代码

阅读数 14

C++代码定义typedefstructstPlay{ HWND wndPlay;//播放窗口句柄 bool bAudio;//是否播放音频,现在只能播放一路音频 PlayTypetype;//播放类型 //onlyfornetplay. TransmissionTypeeTranType;//数据传输类型,0-UDP,1...

博文 来自: weixin_34273481
没有更多推荐了,返回首页