《最简单的c++程序》由会员分享,可在线阅读,更多相关《最简单的c++程序(58页珍藏版)》请在金锄头文库上搜索。
1、第1章 最简单的C+程序第1章 最简单的C+程序1.1 C和C+ 1.2 一个简单的程序1.3 C+程序的实现与运行环境第1章 最简单的C+程序1.1 C和C+ 1.1.1 C+的发展史C语言是20世纪80年代以来迅速推广使用的一种程序设计语言。它既具有高级语言的特点,又具有低级语言的一些特点,能够很方便地实现汇编级的操作, 目标程序效率较高。然而,C语言也存在一些缺陷,例如类型检查机制相对较弱,缺少支持代码重用的语言 结构等,使得用C语言开发大程序比较困难。为了克服C语言存在的缺点,并保持C语言简洁、高效的特点,贝尔实验室的Bjarne Stroustrup博士及其同事于1983年开始对C语
2、言进行改进和扩充,将“类”的概念引入了C语言,构成了最早的C+语言。第1章 最简单的C+程序发明C+的重要目标就是在保留C原有精华的基础上提供全面的面向对象的编程支持,使得程序的结构更加清晰,更容易维护和扩充,同时又不丧失其高效 性。后来Stroustrup博士及其同事们又为C+引进了运算符重载、引用、虚函数、友元、继承、多态性、I/O流、New/Delete内存分配与撤销、无名联合等许多新特性,并使之更加精炼。C+支持面向对象的程序设计方法,很适合于大、中型软件的开发,从开发时间、费用到软件的可重用性、可扩充性、可维护性和可靠性等方面,都具有很大的优越性。第1章 最简单的C+程序1.1.2
3、面向对象的程序设计1面向对象的程序设计的基本概念语言、PASCAL、FORTRAN等都是一种面向过程的程序设计。面向过程的程序设计的基本思想是将 问题分成独立的功能模块,用过程或函数来实现,达 到最终解决问题的目的。 它采用函数来描述对数据结构的操作,但又将函数与其所操作的数据分离。作为 对现实世界的抽象,函数和它所操作的数据是密切联 系、相互依赖的。如果数据结构发生改变,则必须改 写相应的函数。某个函数的改动经常引起许多其它函 数的改动,维护较为困难,特别是难以适应大型复杂 软件系统开发的需要。第1章 最简单的C+程序面向对象程序设计从所处理的数据入手,并以数据 为中心。它把现实世界的问题抽
4、象为“类”的概念。 类是对现实世界中的客观事物的抽象,是对具有共同 属性和行为的一类事物的抽象描述,其中,共同属性 被描述为类中的数据成员-属性,共同行为被描述为 类中的成员函数方法(和VB类似)。例如:汽车是 对各种汽车(如小轿车、大卡车、公共汽车等)的一个 抽象,汽车的颜色、型号、发动机等是属性,而开动 和转弯等是它的成员函数即是它的方法。面向对象的程序设计方法最基本的思想就是把客 观世界看成一个个相对独立而又相互联系的实体,称 为对象。第1章 最简单的C+程序类是对象集合的抽象,规定了这些对象的公共属性和方法,对象是类的一个实例。例如,钢笔是一个 类,具体到一支钢笔就是一个对象;一个桌子
5、、一个 气球,一个地球都是一个对象。 。现实世界中的对象既具有静态的属性(或称状态 ),又具有动态的行为(或称操作,功能)。再如“人 ”是一个“类”,即人类,人类具有某些共同的属性(状态,数据成员),即哺乳动物,一个脑袋一张嘴,两 只小手两条腿等;人类也具有某些共同的行为(方法 ,函数成员),即上课睡觉,走路吃饭,考试作弊, 花钱享受等;张三是人,李四是人,都是“人类”的一 个对象,也就是“人类”的具体实例。第1章 最简单的C+程序再比如,所有的狗属于一个类,即“狗类”,一只哈巴狗,一只赖皮狗,一只落水狗都是狗类的一个具 体实例-即对象。类又有基类(父类)和派生类( 子类)的概念,比如“狗类”
6、是“好狗类”和“坏狗类”的 父类,同时又是“哺乳动物类”的子类。父类实际上是多个子类的进一步抽象,具有更高的层次。同一个类的对象除了具有某些共同的属性和行为 之外,还可能具有各自不同的属性和行为,比如“人类 ”的对象-某个人,可能是男人,女人,好人,坏人,高矮胖瘦,肤色发型,年龄爱好,贪官良民等等不 同属性;偷窃抢劫,乐善好施,杀人放火,扶危济困 ,钓鱼打牌,学习工作等等不同的行为。第1章 最简单的C+程序2面向对象程序设计的基本特征面向对象程序设计具有封装、抽象、继承和多态性 4种基本特征。(1) 封装封装是把函数和数据封藏起来,把它看成一个有机整体。封装是面向对象的重要特征,首先它实现了
7、数据隐藏,保护了对象的数据不被外界随意改变;其 次它使对象成了相对独立的功能模块。对象好象是一 个黑盒子,表示对象属性的数据和实现各个操作的代 码都被封装在黑盒子里,从外面是看不见的。使用对象,只需知道它向外界提供的接口,而无须知道它的数据结构细节和实现操作的算法。第1章 最简单的C+程序(2) 抽象抽象就是忽略一个主题中与当前目标无关的那些方面,以便充分地注意与当前目标有关的方面。对象本身也是一个抽象,是具有特定属性和行为的一个抽 象。抽象是通过特定的实例(对象)抽取共同性质以后形成的概念。抽象是对系统的简化描述或规范说明,它强调了系统中的一部分细节和特性,而忽略了其他部分。抽象包括两个方面
8、:数据抽象和代码抽象(行为抽象)。前者描述了某类对象的属性或状况,也就是此类对象区别于彼类对象的特征物理量,后者描述了某类对象的共同行为特征或具有的共同操作。第1章 最简单的C+程序(3) 继承自然界中的大部分事物之间都有很多共性,但也有不同。比如,四边形是一个类,而矩形与四边形有相同的性质,也有自已的属性。我们可以将事物之间的共性保留下来也就是继承,如矩形继承四边形这个类的公共属性,将不同的特性再定义。面向对象程序 设计方法允许一个类继承其它类(称为基类)的属性和方法,该类称为派生类(子类)。继承是类的层次结构之间共享数据和方法的机制,允许和鼓励类的重用。第1章 最简单的C+程序(4) 多态
9、性多态性是指不同类的对象对同一消息作出不同的响应,或者说产生多种不同的行为方式。例如,同样 是加法,把两个时间加在一起和把两个整数加在一起 的内涵是完全不同的。再比如,十字路口的交通灯, 同样是灯,当红灯亮时,人们知道该停止;当绿灯亮 时,人们知道该通行。多态性包括参数多态性和包含 多态性,它具有灵活、抽象、行为共享和代码共享的 优势。C+语言支持两种多态性,即编译时的多态性和运 行时的多态性。 第1章 最简单的C+程序编译时的多态性是通过重载来实现的,运行时的多态性是通过虚函数来实现的。重载包括函数重载和运算符重载。函数重载是指一个标识符可同时用于为多个函数命名,而运算符重载是指一个运算符可
10、同时用于多种运算。相同名字的函数或运算符在不同的场合可以表现出不同的行为。虚函数的有关概念较复杂,后续讲解。对象是具体的类的实例,是客观存在的,而类是对对象的抽象,只是一个概念,一个层次的描述,是不存在的但又需要加以利用的东西。在类的基础上可以抽象出更高层次的父类。第1章 最简单的C+程序3.消息和方法对象之间需要联系,称为对象的交互。面向对象程序设计技术必须提供一种机制,允许一个对象与另一个对象交互,这种机制称为消息传递。一个对象向另一个对象发出的请求被称为消息。当对象接收到发向它的消息时就调用有关的方法,执行相应的操作。消息是一个对象要求另一个 对象执行某个操作的规格的说明,通过消息传递才
11、能完成对象之间的相互请求或相互协作。消息传递与用手机发送短信(短消息)具有非常相似的含义。第1章 最简单的C+程序消息具有3个性质:(1)同一个对象可以接收不同形式的多个消息,作出不同的响应。(2)相同形式的消息可以传递给不同的对象,所作出的响应可以是不同的。(3)对消息的响应并不是必须的,对象可以响应消息,也可以不响应。方法就是指对象所能执行的操作。方法包括界面和方法体两部分,方法的界面也就是消息的模式,它给出了方 法的调用协议,方法体则是实现某种操作的一系列计算步 骤,也就是一段程序。第1章 最简单的C+程序4.为什么要使用面向对象程序设计传统程序即面向过程的程序设计方法,开发软件的生产效
12、率低下,难以应付日益庞大的信息量和多样的信息类型,难以适应各种新环境。面向对象程序设计的优点在于:可以提高程序的重用性,可以控制程序的复杂性,可以改善程序的可维护性,能更好的支持大型程序设计,增强了处理信息的范围,能很好的适应新环境,第1章 最简单的C+程序1.2 一个简单的程序 1.2.1 一个简单的C+程序例:编程求从键盘上输入的两个浮点数的和#includevoid main() /SAMPLE S1_1double x,y;coutxy;double z=x+y;cout是命令的参数,它指出了要包含的那个文件的文件名是iostream.h。C语言和汇编语言均采用这种包含形式。3. 头文
13、件以.h作为扩展名,包含有对象和函数说明的文件称为头文件。在1.2.1节的程序中,用C+流完成输入、输出的操作,其中,cout是输出流对象,cin是输入流对象;v1v2.vn;其中,“”的功能是从输入流中提取数据赋值给一个变量, 称为提取操作符或输入运算符;v1,v2,.,vn都是变量。该语句的意思是,程序暂时中止执行,等待用户从键盘上输入 数据。用户输入了所有的数据后,按回车键表示输入结束, 程序将用户键入的数据存入各变量中,并继续执行下面的语 句。第1章 最简单的C+程序C+的输出操作是由系统提供的标准输出流对象cout来完成的。它的格式为cout“x=“x“;“y=“yendl;其中,“
14、”称为插入运算符或输出运算符,x,y都是表达式,endl是换行符。这个语句的意思是,将表达式的值输出到屏幕上当前光标位置处。在输出时可适当使用字符串作为提示信息。第1章 最简单的C+程序5. 注释符在C+中,注解的形式有两种:一种以两个斜杠“/”起头(SQL SERVER中以起头),直到行末;一种是用斜线星号组合“/*”和“*/”括起的任意文字(与SQL SERVER相同)。后一种多用于注解篇幅多于一行的情况。编译系统不理会注释文字,因此注释文字可以是任意的。注释可使程序更容易理解,在编写程序时随时添加注释是一种良好的习惯。第1章 最简单的C+程序类的声明部分面向对象程序 类的使用部分第1章
15、最简单的C+程序1.3 C+程序的实现与运行环境Visual C+(简称VC+)是美国Microsoft公司开发的Microsoft Visual Studio的一部分,是一个使用广泛的C/C集成化开发环境。它成功地将面向对象和事件驱动编程概念联系起来,并得到了很好的配合,使得 编写Windows应用程序的过程变得简单、方便且代码量小。VC 6.0集程序的代码编辑、编译、连接、调试于一体,给编程人员提供了一个完整、方便的开发界面和许多有效的辅助开发工具。 第1章 最简单的C+程序VC+ 6.0的编辑环境包含了许多独立的组件,它们是:文本编辑器、资源编辑器、C/C+编译器、连接器、调试器、App
16、Wizard、ClassWizard 、源程序浏览器以及联机帮助。所有这些构件的功能都隐藏在 VC+ 6.0的菜单和工具条中。通过该集成环境,程序员可以观察和控制整个开发进程。VC+ 6.0的主窗口可以分为如图1-1所示的几个部分。典型的Windows应用程序结构有控制台应用程序,基于框架窗口的应用程序,基于对话框的应用程序 和基于文档视图结构的应用程序4种。第1章 最简单的C+程序VC+既可用于管理基于Windows的应用项目,也可用于管理基于DOS的应用项目。基于DOS的应用系统也称为控制台应用系统,本书前9章的应用程序均为控制台应用程序。控制台应用程序结构简单,可以不 使用MFC类库。本书的第10章将