C++ 初学者指南 第一篇(2)

必备技能1.2:C++与Java和C#的关系

    除了C++之外,还有两个重要的现代编程语言:Java和C#。Java是有Sun Microsystems 公司开发的,而C#则是由微软公司开发的。由于人们有时会对C++与Java和C#的关系产生一些混淆,这里有必要对此介绍一下。C++是Java和C#之父。尽管Java和C#都是在C++的基础上对语言的特性进行了一些增加,删除和改动,但是总体上来说它们三者的语法是几乎相同的。进一步来说,C++所采用的对象模型和Java,C#的都是相似的。最后,三者给人的总体感觉也是非常相近的。这就意味着,一旦学会了C++,就能很轻易地学习Java和C#。  反之亦然,如果你懂Java或者C#学习C++也是很简单的。这就是为什么Java,C#和C++都是用相同的语法和对象模型了,这也是大量有经验的C++程序员能顺地过渡到是Java或者C#的原因。它们之间的区别在于各自设计针对的计算环境不同。C++是针对指定类型的CPU和操作系统而设计的高性能的语言。例如:如果你想写在windows操作系统下,因特尔奔腾系列的CPU上运行的程序,那么C++是最好的选择。

 

专家答疑
问:
 Java和C#都实现了跨平台和可移植的编程,C++为什么不能了?
答:
 Java和C#之所以能实现跨平台,可移植的编程,而C++不能是因为它们的编译器生成的目标代码不同。就C++而言,编译器的输出是机器代码,这是CPU可以直接执行的。因此它是紧密和指定的CPU以及操作系统相关的。如果想让C++程序在不同的系统上运行,则需要针对该目标系统进行代码的重新编译。为了让C++程序可以在不同的环境上运行,就需要生成不同的可执行版本。Java和C#是通过把代码编译成伪码,一种中间语言。就Java而言,这种伪码是在运行时系统上运行的,这就是Java虚拟机。对C#而言,这就是CLR(公共语言运行时)。因此,Java语言的程序可以在任何有java虚拟机的环境下运行,C#的程序可以在任何实现了CLR的环境下运行。因为Java和C#的运行时系统处于程序和CPU之间,和C++相比,这就引起了多余的开销。这就是为什么,对等情况下,C++程序比Java和C#程序运行快的原因了。Java 和C#的开发是为了满足互联网上在线程序的统一编程需求。(C#的设计也是用来简化软件构件的开发)。互联网上连接的是许多不同的CPU和操作系统。因此跨平台和可移植性就成了最重要的着眼点。第一个着眼于这个问题的语言就是Java。Java语言编写的程序可以在很多不同的环境下运行。因此,Java程序可以在互联网上自由运行。然而这样做的代价就是牺牲了效率,Java程序的执行要比C++程序慢许多。同样的事情也发生在C#身上。最终分析,如果你想开发高性能软件,就是用C++。如果你想开发高度可移植的软件,就是用Java或者C#。最后一点:请记住,C++,java和C#是用来解决不同问题的。这里并没有那个语言好,那个语言不好的问题,而是那个语言更适合用来完成我们手头工作的问题。

 

练习:
  1. C++语言是从什么语言发展而来的?
  2. C++语言产生的主要原因是什么?
  3. C++语言是Java和C#语言之父,对吗?
答案:
  1. C++是从C语言发展而来的。
  2. 程序复杂性的不断增加是产生C++语言的主要原因。
  3.  正确。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值