作为比C语言更简捷的语言,C++语言提供了更好的机制来增强程序的安全性,C++编译器具有严格的类型安全检查功能,它几乎能找出程序中所有的语法问题,这方面大大的帮助了开发人员。
总的来说,C++和C#、Java的区别集中在以下几点:
(1)C#、Java代码编译后(形成中间代码)是在虚拟机上执行的。C++则不是。
(2)C#、Java语言相对于C++语言来说较为简单,比较容易上手。C++的语法特性多、复杂,较难掌握。
(3)C++语言本身是一个标准,各种实现之间有区别,对标准的理解、执行程度也不同。而C#、Java语言是由商业公司掌握的,在这方面很少有问题。
(4)C#、Java是直接面向应用的,各种标准、模型都很成熟。而C++的各种库在不同的C++编译器实现上可能遇到一些问题。
(5)三者都是面向对象的。C#、Java比C++更为彻底一些。有观点认为C#、Java是彻底地面向对象的语言,这种说法不妥,因为对于面向对象的语言,并没有一个特定的标准,例如也有观点认为最近很流行的Ruby语言比C#、Java更加面向对象。#t#
(6)C++拥有很多现代的、令人激动的语言特性,例如模板、泛型编程等。在这一点上,C#和Java也在迅速跟进。
C++是一门精致的、艺术的编程语言。
笔者认为,C++也是所有已知程序设计语言中最灵活、最难学的语言之一。学好C++基本上也意味着可以学好任一种其他的高级程序设计语言。图1.1对C、C++、C#、Java这4种语言的几个方面做了比较。
在介绍C++语言的主要应用领域之前,可以先介绍C++语言的使用者情况。C++语言之父Bjarne Stroustrup博士在一次关于C++的讨论中提到:“C++在经过前10年(1985-1994)的爆炸性增长之后,后10年(1995-2004)的使用人数一直在稳定地增长。”
事实上,就笔者的周围环境来看,也的确如此,虽然这个增长的速度没有Java等语言快,但是使用C++的程序员人数仍然在增长。这说明,C++语言仍然跟得上“潮流”,仍然能够满足程序员和实际应用的需要。目前,在Web开发上,C++没有多大的市场。
在企业级的应用上,以Java、.NET(C#是其中重要的一员)居多,C++仍然占有一席之地。在系统级的开发上,C/C++应用居多。这3种语言各有特色。总的来说,C++的应用集中在如下主要领域。