C++程序设计语言概述.pdf

上传人:g****s 文档编号:85907140 上传时间:2023-04-13 格式:PDF 页数:5 大小:339.14KB
返回 下载 相关 举报
C++程序设计语言概述.pdf_第1页
第1页 / 共5页
C++程序设计语言概述.pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《C++程序设计语言概述.pdf》由会员分享,可在线阅读,更多相关《C++程序设计语言概述.pdf(5页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第 1 章 C+程序设计语言概述 什么是 C+?C+是基于 C 语言发展起来的一种新的程序设计语言。C 语言诞生于 20世纪 70 年代,是一种应用相当广泛的程序设计语言(尤其是在系统程序设计领域)。C 语言简洁、高效,但是 C 语言也有其自身的缺点,例如弱的类型检查机制等,使得使用 C 语言开发大型的应用程序比较困难。20 世纪 80 年代,美国贝尔实验室的 Bjarne Stroustrup 博士及其同事在 C 语言的基础上引入了面向对象的编程思想和一个 class 关键字,形成了最早的 C+语言原型。后来,C+语言被融入了越来越多的语言特性,其中最具有意义、影响最深远的莫过于 templ

2、ate(模板)的引入,最终美国国家标准化协会 ANSI(American National Standard Institute)和国际标准化组织 ISO(International Standards Organization)一起对 C+语言进行了标准化工作,并于1998 年正式发布了 C+语言的国际标准 ISO/IEC:98-14882。C+已经成为最流行的程序设计语言之一。1.1 C+和 C#、Java 的区别 很多刚接触程序设计的人经常会问“C+和 C#、Java 有哪些区别?学哪个比较好?”这样的问题。在网络上搜索一下,也不难发现这个问题已在各大论坛中成为讨论的焦点。1.1.1 面

3、向对象还是面向过程 C 语言是面向过程的。C+和 C#、Java 这 3 种语言都使用了类似 C 风格的语法,但它们都是面向对象(OOP)的。C+是对 C 语言的一个扩充,也就是说,一个 C 语言的程序,也可以认为是一个 C+程序(没有用到 C+高级特性而已),C#和 Java 对 C 语言没有任何的兼容性。1.1.2 内存管理是否自动释放 C+和 C#、Java 这 3 种语言中,C+是最早出现的,保持了对 C 的兼容性,允许指针的存在,允许程序员手动高效地管理、使用内存(尽管这也是最容易引起问题的地方)。C+在发展的过程中,不断地补充语言特性,使得 C+成为最灵活的编程语言之一。C+语言的

4、灵活性是建立在其复杂的语法之上的,因此对于初学者来说,很有可能因此望而却步,但是如果坚持下去,就会发现,再去看 C#、Java 语法时会感到很轻松。C#、Java 语言相对 C+语言来说,在语法上要简单得多,因此初学者很容易上手。二者抛弃了最容易引起问题的指针,对内存的管理完全自动化,这样虽然带来了程序的稳定性和安全性,但是在某种程度上丢失了效率。提示:因为内存管理自动化,C#、Java 语言拥有垃圾自动回收机制,在 C+中,申请的内存必须由程序员自己手动释放,如果忘记这一点就会引起内存泄露。C+丰富的语言特性在一定程度上弥补了如下不足:部分 C+库拥有内存管理机制,如 STL、Boost 等

5、。C+拥有智能指针。某些 C+库实现了垃圾回收功能。1.1.3 是否跨平台 Java 的程序是运行在虚拟机上(Virtual Machine)的,而 C+不是,C+程序的代码是直接运行在物理机器上的。就 Java 和 C#二者单独来看,C#更像是微软公司和 SUN 公司进行商业斗争的产物。历史上,微软公司是支持过 Java 语言的,代表性的产品有 Visual J+和 WFC。后来因为众所周知的原因,微软公司推出了 C#,其目的很明确,就是和 Java 竞争。实际上 C#和 Java 在特性上也非常类似(不仅仅是语法)。二者都是为了更加方便地解决应用问题,在 GUI、数据库访问、网络通信、多线

6、程等和实际应用密切相关的点上都有成熟的解决方案。C+更多地靠第三方的库来实现这些功能,因为 C+是一个国际标准,要在 C+中加入这些语言之外的、面向应用的特性还需要很长一段路要走。而 C#、Java 的拥有者是商业化公司,各种动作自然要敏捷得多。但是这并不意味着 C+即将消亡(这样的言论很多)。不可否认的是 C+在 C#、Java的进攻下,丢失了一些领域,但是 C+仍然在普遍使用,很重要的原因就是因为 C+既保持了 C 语言级别的效率(某些情况下例外),又加入了面向对象的特性。1.1.4 C+与其他语言的主要区别 总的来说,C+和 C#、Java 的区别集中在以下几点:(1)C#、Java 代

7、码编译后(形成中间代码)是在虚拟机上执行的。C+则不是。(2)C#、Java 语言相对于 C+语言来说较为简单,比较容易上手。C+的语法特性多、复杂,较难掌握。(3)C+语言本身是一个标准,各种实现之间有区别,对标准的理解、执行程度也不同。而 C#、Java 语言是由商业公司掌握的,在这方面很少有问题。(4)C#、Java 是直接面向应用的,各种标准、模型都很成熟。而 C+的各种库在不同的 C+编译器实现上可能遇到一些问题。(5)三者都是面向对象的。C#、Java 比 C+更为彻底一些。有观点认为 C#、Java 是彻底地面向对象的语言,这种说法不妥,因为对于面向对象的语言,并没有一个特定的标

8、准,例如也有观点认为最近很流行的 Ruby 语言比 C#、Java 更加面向对象。(6)C+拥有很多现代的、令人激动的语言特性,例如模板、泛型编程等。在这一点上,C#和Java 也在迅速跟进。C+是一门精致的、艺术的编程语言。笔者认为,C+也是所有已知程序设计语言中最灵活、最难学的语言之一。学好 C+基本上也意味着可以学好任一种其他的高级程序设计语言。图1.1对C、C+、C#、Java 这 4 种语言的几个方面做了比较。1.2 C+语言的主要应用领域 在介绍 C+语言的主要应用领域之前,可以先介绍 C+语言的使用者情况。C+语言之父 Bjarne Stroustrup 博士在一次关于 C+的讨

9、论中提到:“C+在经过前10 年(19851994)的爆炸性增长之后,后 10 年(1995 2004)的使用人数一直在稳定地增长。”事实上,就笔者的周围环境来看,也的确如此,虽然这个增长的速度没有 Java 等语言快,但是使用 C+的程序员人数仍然在增长。这说明,C+语言仍然跟得上“潮流”,仍然能够满足程序员和实际应用的需要。目前,在 Web 开发上,C+没有多大的市场。在企业级的应用上,以 Java、.NET(C#是其中重要的一员)居多,C+仍然占有一席之地。在系统级的开发上,C/C+应用居多。这 3 种语言各有特色。总的来说,C+的应用集中在如下主要领域。游戏:C+的效率是一个很重要的原

10、因。科学计算:在科学计算领域,FORTRAN 是使用最多的语言之一。但是近年来,C+凭借先进的数值计算库、泛型编程等优势在这一领域也应用颇多。网络软件:C+拥有很多成熟的用于网络通信的库,其中最具有代表性的是跨平台的、重量级的 ACE 库,该库可以说是 C+语言最重要的成果之一,在许多重要的企业、部门甚至是军方都有应用。分布式应用。效率C语言C+C#、JavaOOPC语言C+C#、Java是否支持泛型编程C语言C+C#、Java否是是否使用虚拟机C语言C+C#、Java否是 图 1.1 C、C+、C#、Java 的相关比较 操作系统:在该领域,C 语言是主要使用的编程语言。但是 C+凭借其对

11、C 的兼容性,面向对象性质也开始在该领域崭露头角。设备驱动程序:也是因为效率的原因。移动(手持)设备。嵌入式系统。教育与科研。部分行业应用。其他应用。一种语言只有在一种界面化的开发工具下,才容易被推广和流传。Visual C+6.0 就是微软公司推出的 C+开发工具,是使用最广的开发工具。本节介绍 Visual C+6.0 工具的开发环境和开发流程。简介 在前面小节中已经提到,C+只是一个 ISO 标准,标准中规定了 C+的基本语法以及这些语法对应的语义(可以简单理解为语法的含义)。要将 C+真正地应用在实际的程序设计中,只有一个标准是不够的。好在已经有很多商业公司、开源组织、基金会甚至是个人

12、,遵照 C+标准在不同的平台上进行了实现。这里的遵照并不是百分之百地遵照 C+标准,主要原因有以下几点:(1)历史原因。某些编译器在实现的时候,C+正式标准还没有出来,或者是按照较老的标准实现的(C+标准也是在更新的)。(2)平台原因。某些平台上实现标准中的某些特性比较困难,或者根本不需要这些特性。(3)出于商业目的。某些商业公司实现的时候可能会添加一些其认为可行的或者更加好的特性。(4)其他技术原因。无论如何,现在可用的 C+编译器实现已经很丰富了,在 Windows 平台上的实现就有若干种,比较常用的有 Visual C+6.0 附带的 C+编译器实现,和 Borland C+Builde

13、r 附带的 C+编译器实现。就对标准的执行程度来看,后者要好一些。提示:Visual C+和 Borland C+Builder 是 Windows 操作系统上常见的 C+开发工具。前者是微软公司出品的,应用广泛。本书的主要内容就是讲述如何使用 Visual C+6.0 进行常见的 Windows 程序设计。Visual C+6.0 除了包含了一个 C+编译器之外,还包含了其他的一些可视化开发工具、辅助工具,以及一些 C+库等,这些都将在本书的相关章节进行介绍。Visual C+6.0编译器负责将C+源代码编译成汇编文件,转换为中间文件(obj文件),然后使用连接器将相关的中间文件连接在一起,生成可执行的二进制文件。其过程如下:(1)源程序经过预处理后交给编译器。(2)如果代码无误,编译器将代码生成汇编程序,再生成若干个目标程序(obj 文件)。(3)链接器负责将目标程序进行连接,生成可执行的程序。图 1.2 详细地描述了常见 Windows 应用程序开发的过程。.h文件资源文件菜单对话框字体图像声音图标鼠标图案其他.c.cpp文件资源编译器.res文件CC+编译器.obj文件.lib文件.def文件链接器PE可执行文件(exe,dll,ocx.)图 1.2 Windows 应用程序开发的过程 (exe、dll、ocx)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 文案大全

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com