《C语言与C++的关系.ppt》由会员分享,可在线阅读,更多相关《C语言与C++的关系.ppt(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第 1 章章 C与与C+1.1 C语言与语言与C+的关系的关系1.2 C+语言的开发环境语言的开发环境返回主目录1.1 C语言与语言与C+的关系的关系 1.1.1 C+发展历史简介发展历史简介 随着面向对象程序设计思想的日益普及,很多支持面向对象程序设计方法语言也相继出现了,C+就是这样一种语言。C+是Bjarne Stroustrup于1980年在AT&T的贝尔实验室开发的一种语言,它是C语言的超集和扩展,是在C语言的基础上扩充了面向对象的语言成分而形成的。最初这种扩展后的语言称为带类(class)的C语言,1983年才被正式称为C+语言。Bjarne Stroustrup在设计和实现C+
2、语言时,既保留了C语言的有效性、灵活性、便于移植等全部精华和特点,又添加了面向对象编程的支持,具有强大的编程功能,编写出的程序具有结构清晰、易于扩充等优良特性,适合于各种应用软件、系统软件的程序设计。C+语言由C语言扩展而来,同时它又对C语言的发展产生了一定的影响,ANSI C语言在标准化过程中吸收了C+语言中某些语言成分。1.1.2 C+与与C语言语言 C+语言是C语言的超集,与C语言具有良好的兼容性,使用C语言编写的程序几乎可以不加修改直接在C+语言编译环境下进行编译。C+语言对C语言在结构化方面做了一定程度的扩展。例如:1函数原型函数原型 C语言中,在使用一个函数之前可以不对其加以说明,
3、编译器缺省认为其返回值为整型数据。但在C+编译环境中,任何一个函数在使用前,必须有函数的原型说明,声明函数的返回值类型及参数的类型。如下面这段在C语言教材中广泛使用的程序:main()printf(Hello,World!n);在C+编译器中编译时必须在前面加上:#include 以将函数printf的原型声明包含进来。使用函数原型,可以避免程序在调用其它函数时,错误引用其返回值或传递错误的实参给被调用的函数,发生这样的错误可以由编译器在编译时发现;如果使用C语言的函数声明习惯,则不能在编译阶段检查出此类错误。现代C语言标准已经引进了函数原型说明,但不作为一种强制标准。2函数重载函数重载 C+
4、语言可实现函数重载,即多个函数在同一作用域可以用相同的函数名,编译器在编译时可以根据实参的类型来选择应该调用的函数。例如,在C语言的数学函数库中,求绝对值的函数有abs、fabs等,分别用于不同类型的参数;而在C+中,对相同功能但参数类型不同的函数可以使用相同的函数名,在调用时无需记忆多个函数名,而由编译器根据参数类型选择。有关函数重载的具体内容可参看后面相关章节的介绍。3缺省参数缺省参数 在C+语言中,函数参数允许使用缺省值。当函数调用时,若给出的参数个数少于函数表中参数的总数时,则所缺参数自动取函数参数表中设置的缺省值。下面是一个参数缺省的例子:void f(int x,int y=10)
5、/此处省略函数体内容 该程序定义了一个函数f(),它有两个整形参数,第二个参数缺省值为10。如调用语句:f(2);就相当于f(2,10)。函数可以有多个缺省参数,但应注意只能从右往左缺省,例如:int f1(int x,int y=0,int z=0);/正确 int f2(int x,int y=0,int z);/错误 4注释注释 C+语言保留了C语言中以/*开始,*/结束的注释,这种方式适用于多行的注释,同时C+语言中还提供行注释符/,该注释在它的行结束处结束,适用于短注释。5枚举名与结构名枚举名与结构名 C+中枚举可以命名,一个枚举名就是一个类型名字,因此不必在枚举类型名前加标识符en
6、um;同样,定义的结构就是一个用户定义的数据类型,在结构名前也不必加标识符struct。例如下面定义一个结构类型:6作用域标识符作用域标识符 在C+语言中增加了作用域标识符(或称为名字解析运算符):,用以解决局部变量名与全局变量的同名重复问题。在局部变量的作用域内可用作用域标识符:对被其隐藏的同名全局变量进行访问。下面是一个简单的例子:truct studentchar name10;int number;int page;则在定义该结构类型变量时可以使用如下方式:student s1,s2;7程序块中的变量声明程序块中的变量声明 将几个语句用大括号、组合起来就构成了一个程序块。在C语言中,变
7、量的声明只允许出现在程序块的开始,而在C+语言中变量声明可以出现在任何位置。如下面的程序片断:int x=0;void test(int x)x=5;/此处引用局部变量:x=9;/此处引用全局变量 for(int i=0;iy)return x;elsereturn y;C+语言与C语言最显著的区别是它的面向对象的特征,引进了类与对象的概念。类封装了一组数据结构和作用于该数据结构的一组方法,下面对C+语言的介绍将着重围绕类来进行介绍。1.2 C+语言的开发环境语言的开发环境 1.2.1 常见常见C+编译器简介编译器简介 使用C+语言开发应用程序的过程与C语言相同,首先输入源程序,然后使用编译器
8、编译生成目标代码文件,再由连接程序生成可执行的二进制文件。目前可以选择的C+编译器很多,在PC平台上,常见的操作系统环境下都有可使用的编译器,比较普遍的有微软公司与Borland(Inprise)公司的产品。DOS环境下,由于操作系统本身功能的限制,C+编译器提供的功能相对简单,如微软的MS C 7.0、Borland C+3.1等产品。相比而言,Borland C+的集成环境使用起来更方便。目前,PC操作系统越来越多地使用图形用户界面的Windows 95和Windows NT。Windows环境下,微软公司与Borland公司都有自己的C+编译器,如微软的Visual C+6.0、Borl
9、and公司的Borland C+5.0、C+Builder等,它们所提供的不仅仅是C+编译器,而是一个完整的开发平台。在学习C+基本语法的过程中,建议读者使用DOS系统下的Borland C+3.1。它的集成环境简单易用,而且提供了强大的调试功能。下面先简单介绍一下Borland C+3.1的使用,本书的第9章将详细介绍Visual C+开发平台的使用。1.2.2 Borland C+3.1的使用的使用 1安装安装 (1)插入安装盘(第一张盘)到驱动器A,在DOS提示符下键入:A:install (2)在安装屏幕上按回车键,顺序回答所有的提示即可完成安装。Borland C+3.1支持DOS及
10、Windows 3.1应用程序的开发。如果不想安装Windows 3.1支持,可在安装过程中出现图1.1所示的屏幕时,将有关Windows的选项去掉。图1.1 Borland C+3.1的安装 2用用Borland C+3.1编译编译C+程序程序 Borland C+3.1安装完成后,启动安装目录下bin子目录下的bc.exe,即可进入Borland C+3.1的集成环境。Borland C+3.1集成环境可以编译执行独立的源程序文件,也可以编译执行完整的由多个源程序文件组成的项目。操作方法是:选择File菜单下的New,Borland C+3.1打开一个新的源程序编辑窗口如图1.2所示,输入
11、源程序,然后按F2保存源程序(也可以使用File菜单下的Save),源程序文件的扩展名使用CPP。选择Run菜单下的Run即可编译执行程序。如果程序在编译连接过程中有错误,错误信息可在Message窗口中看到。如果是编译已存在的源程序文件,可用File菜单下的Open功能装入该程序文件。如果要编译执行多个源程序文件构成的项目,需要建立一个项目文件,即选择Project菜单下的Open功能,输入项目文件名,如果该文件存在,则打开该项目文件,否则将建立一个新的项目文件。图1.2中的Project VCIRC窗口,即为一个已打开的项目文件窗口,在该窗口中按Insert键弹出一个对话框,可选择要加入该
12、项目文件的源程序文件。3Borland C+3.1调试功能简介调试功能简介 Borland C+3.1提供了较为强大的源程序级调试功能,可以通过Run菜单下的各项命令来跟踪程序的执行情况:图1.2 Borland C+3.1运行画面 3Borland C+3.1调试功能简介调试功能简介 Borland C+3.1提供了较为强大的源程序级调试功能,可以通过Run菜单下的各项命令来跟踪程序的执行情况:Goto Cursor(F4)命令运行用户的程序,从程序开始到光标所在行,如果光标所在行没有可执行语句,将出现警告信息。该命令不设置永久性的断点,如果光标所在行前有永久性的断点存在,程序将会中断执行。
13、如果想在某一行设置断点,可以将光标移动至该行按Ctrl+F8设置断点,重复按将取消断点。Trace Into(F7)命令逐行语句运行用户的程序,如果遇到一个函数调用将跟踪进入该函数,执行函数的每条语句。Step Over(F8)命令功能与 Trace Into相似,但是它不跟踪进入被调用的函数。rogram Reset命令终止当前的调试状态,释放分配给用户程序的内存空间,关闭用户程序打开的所有文件。Argument命令用来输入用户程序的命令行参数,如果当前调试的程序需要命令行参数,可使用此功能输入。使用Borland C+3.1提供的调试功能需通过Options菜单功能进行设置,使得在编译时目标代码中包含调试信息。详细的设置请参考Borland C+3.1的用户手册。