C++编程基础课件_第1页
C++编程基础课件_第2页
C++编程基础课件_第3页
C++编程基础课件_第4页
C++编程基础课件_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1章 C+编程基础第1页,共50页。【本章学习要点】1. 掌握面向对象的基本概念;2. 掌握对象和类的概念,理解对象的特性;3. 掌握C+语言的基本概念。 参考教材:C+面向对象程序设计 谭浩强 清华大学出版社 第2页,共50页。第1章 C+编程基础1.1 C+语言简介1.2 面向对象方法的基本概念 1.3 C+语言的基本概念 1.4 C+程序风格 1.5 C+程序的运行环境 第3页,共50页。1.1.1 C+语言的发展史 C+源于C语言,而C语言是在B语言的基础上发展起来的。 1960年出现了一种面向问题的高级语言ALGOL 60 。1963年英国剑桥大学推出了CPL(Combined P

2、rogramming Language)语言,后来经简化为BCPL语言。 1970年美国贝尔(Bell)实验室的K.Thompson以BCPL语言为基础,设计了一种类似于BCPL的语言,取其第一字母B,称为B语言。 1.1 C+语言简介第4页,共50页。1972年美国贝尔实验室的Dennis M.Ritchie为克服B语言的诸多不足,在B语言的基础上重新设计了一种语言,取其第二字母C,故称为C语言。 1980年贝尔实验室的Bjarne Stroustrup对C语言进行了扩充,推出了“带类的C”,多次修改后起名为C+。以后又经过不断的改进,发展成为今天的C+。 C+改进了C的不足之处,支持面向对

3、象的程序设计,在改进的同时保持了C的简洁性和高效性。 第5页,共50页。C+编程模式1.1.2 结构化程序设计主要特征与原则 :结构化程序是由顺序结构、选择结构和循环结构构成 ;有限制地使用goto语句 ;使用结构化程序设计语言书写结构化程序,并采用一定的书写格式以提高程序结构的清晰性和程序的易读性; 强调程序设计过程中人的思维方式与规律,采用自顶向下的程序设计策略,通过一组规则、规律与特有的风格对程序设计细分和组织。 第6页,共50页。面向对象程序设计C+:以类为核心的面向对象程序设计模式。问题函数算法对象面向对象程序设计有3个主要特征:封装、继承和多态。自下向上的编程方式 第7页,共50页

4、。1.1.3 C+语言的特点 C+语言继承了C语言的特点:丰富的运算符和数据类型、结构化的程序设计方法、高效的机器代码、良好的可移植性。 C+语言扩展了C语言的功能,增加了面向对象机制。C+语言既适用于编写系统软件,也适用于设计应用软件。 与C语言相比,C+语言的错误检查机制强。 第8页,共50页。1.2 面向对象方法的基本概念 面向对象程序设计是在吸取结构化程序设计的一切优点的基础上发展起来的一种新的程序设计方法。它的本质是把数据和处理数据的过程当成一个整体对象。面向对象是C+中的主要概念,在学习C+之前首先要了解这些概念。第9页,共50页。 对象按照面向对象的观点,对象(object)是现

5、实世界中各种各样实际存在的事物,包括有形的对象和无形的对象。例如:人、学生、猫、动物、植物、汽车、工厂和计算机等都是有形的对象,而计划、思想、控制系统、程序等都是无形的对象。对象是构成世界的一个独立单位,它具有自己特定的属性(attribute)(如大小、形状和重量等)和行为(behavior)(如生长、行走、转弯和运算等),人们通过对象的属性和行为来认识对象。 在计算机科学中,对象是系统中用来描述客观事物的一个实体,它是构成系统的基本单位,而系统可以看作是由一系列相互作用的对象组成。 第10页,共50页。类类是面向对象语言必需提供的用户定义的数据类型,它将具有相同状态、操作和访问机制的多个对

6、象抽象成为一个对象类。 类可用公式表示: 类=数据结构+对数据进行操作的函数类与对象的关系如同汽车与具体的一辆车的关系。汽车都能跑,有四个轮子,所有的汽车组成了一个类,具体到一辆汽车,它具有类的全部特性(能跑,有四个轮子),是汽车类的一个子集或元素。类给出了属于该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体。所以,一个对象又称作类的一个实例(instance)。 第11页,共50页。消息 面向对象方法提供了对象之间的通信机制。程序由一些相互作用的对象(类)构成,对象之间的交互通过发送消息来实现。程序通过执行对象的各种行为方法,来改变对象的状态(属性数据),从而使该对象发生某些事件。

7、当对象发生某些事件时,通常需向其他相关对象发送消息,请求它们作出一些处理。 消息是向某对象请求服务的一种表达方法。对象内有方法和数据,外部的用户或对象对该对象提出的服务请求,可以称为向该对象发送了消息。第12页,共50页。继承 继承是面向对象语言的另一特性。类与类之间可以组成继承层次,一个类的定义(子类)可以定义在另一个已定义类(父类)的基础上。子类可以继承父类中的属性和操作,也可以定义自己的属性和操作。 C+语言支持单继承和多继承,因而具有继承这一特性所带来的优势,大大增加了程序的重用性。第13页,共50页。封装 封装是面向对象方法的一个重要原则。它有两个涵义:第一个涵义是,把对象的全部属性

8、和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。第二个涵义也称作“信息隐蔽”,即尽可能隐蔽对象的内部细节,对外形成一个边界(或者说形成一道屏障),只保留有限的对外接口使之与外部发生联系。这主要是指对象的外部不能直接地存取对象的属性,只能通过几个允许外部使用的服务与对象发生联系。 第14页,共50页。1.3 C+语言的基本概念 1.3.1 程序 【例1.1】一个简单的C+程序。#include void main(void)/*输出This is my first C+ program.*/cout”This is my first C+ program.n”; 第15页,共50页。

9、我们可以发现: 1._C+源程序文件的扩展名为CPP。2._C+注释不但可以使用符号“/*”和“*/”,表示符号“/*”和“*/”之间的内容都是注释;而且还可以使用一个双斜线“/”,表示“/”之后的本行内容是注释,注释在按回车键后自动结束。3._C+程序一般包含的是标准输入、输出流的头文件iostream.h,输入、输出可以通过使用输入、输出流对象(如cin、cout)来完成。第16页,共50页。1.3.2 对象和类 从面向对象的角度来说,类是对某一类对象的抽象,而对象是类的具体实例;从程序设计语言的角度来说,类是一种复杂的自定义数据类型,对象是属于这种数据类型的变量。C+引入了类这种抽象数据

10、类型,实现了对对象的抽象和封装。第17页,共50页。C+定义类的基本形式如下:class private:;public:;protected:;第18页,共50页。【例1.2】 定义类Time(时间)。 class Timeprivate:int hour;int minute;int second;public:void setTime(int,int,int);void showTime( );第19页,共50页。【例1.3】类Time的实现。 void Time:setTime(int h ,int m,int s)hour=(h=0&h=0&m=0&s60)?s:0;void Tim

11、e:showTime( )couthour:minute:secondendl;/输出时间 第20页,共50页。【例1.4】类ime 的使用,声明对象并设置对象属性。 void main( )Time EndTime;/声明对象EndTimeEndTime.setTime(1,2,3);/设置对象EndTime的时间(属性,数据成员)cout”The end time is :”;EndTime.ShowTime( );/显示对象EndTime的时间第21页,共50页。1.3.3 常量和变量 在程序中使用的数据有常量和变量两种类型,常量的值是始终不变的,而变量的值是可以被改变的。 常量和变量的

12、主要区别在于:常量不占内存空间,不能为常量赋值;而变量需要占内存空间,可以给变量赋不同的值。第22页,共50页。1.3.4 函数 函数是C+程序的构成基础。C+程序都是由一个个函数所组成的。 在C+中,函数是结构化设计的“自顶向下、逐步求精”思想的具体体现。函数是程序模块划分的基本单位,程序员可将一个复杂的程序分解为若干个相对独立且功能单一的子程序即函数进行设计。 C+函数有三种:主函数(即main( )函数)、C+提供的库函数和自定义函数。第23页,共50页。1.3.5输入和输出 程序从外部设备获得数据称为输入(input),反之,将程序中的数据送到外部设备如屏幕、打印机等称为程序的输出(o

13、utput)。第24页,共50页。1. 标准输出语句cout ”lets learn to write a C+ Program.”;cout endl;cout”chicken hen cock “endl;cout” ” chicken” ”hen” ”cockmyage;#includevoid main(void)int myage;cout myage;/输入年龄(一个整数)coutmyageendl;第26页,共50页。1.3.6 预处理命令 #include 预处理命令以位于行首的符号“#”开始,C+提供的预处理有宏定义命令、文件包含命令和条件编译命令三种。 我们着重介绍#inc

14、lude文件包含指令。第27页,共50页。#include文件包含指令是指将一个源文件嵌入到当前源文件中该指令处。#include指令有以下两种形式,其格式如下: 第一种形式: #include 第一种形式中,所要嵌入源文件用尖括号括起来。这种形式的#include指令告诉编译预处理程序在编译器自带的外部库的头文件中搜索要嵌入的文件,它们一般是系统提供的公共头文件,存放在系统目录中的Include子目录下。第28页,共50页。 第二种形式: #include”文件名” 第二种形式中,所要嵌入的源文件用双引号括起来。这种形式的#include指令告诉编译预处理指令先在当前子目录搜索要嵌入的文件(

15、一般是用户自定义的头文件或源文件),如果没有找到文件,则再去搜索编译器自带的或外部库的头文件。第29页,共50页。1.3.7 头文件 每个C+程序通常分为两个文件,一个文件用于保存程序的声明(declaration),称为头文件;另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。 C+程序的头文件以“.h”为后缀。 头文件由三部分内容组成:(1)头文件开头处的版权和版本声明;(2)预处理块 ;(3)函数和类结构声明等。 第30页,共50页。头文件的作用: (1)通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头

16、文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。 (2)头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错的负担。第31页,共50页。1.4 C+程序风格 C+程序由语句组成,语句主要包括声明语句和执行语句。声明语句用于声明变量和函数,变量声明语句说明变量的名称和数据类型,函数声明语句说明函数的名称、参数类型和返回值类型;执行语句包括赋值语句、表达式语句、函数调用语句和流程控制语句等。 第32页,共50页。1.4.1 命名

17、标识符是由程序员定义的字符串,用以命名程序中变量名、函数名、常量名和对象名等。标识符由字母、数字和下划线“_”组成。第一个字符只能以字母或下划线开头,而且不能是数字。 与有些语言不同,C+编译器把大写和小写字母当作不同的字符,这个特征称为“大小写敏感”。 为标识符取名时,恰当运用下划线,大、小写字母混用以及使用较长的名字都有助于提高程序的可读性。但是不要采用C+关键字。 第33页,共50页。 关键字是C+编译器预定义的,具有固定含义的保留字,用于在程序中表达特定的含义,如表示数据类型、存储类型、类和控制语句等。以下是标准C+中主要的关键字:auto,bool,break,case,catch,

18、char,class,const,continue,default,delete,do,double,else,enum,extern,false,float,for,friend,goto,if,inline,int,long,namespace,new,operator,private,protected,public,register,return,short,signed,sizeof,static,struct,switch,template,this,throw,true,try,typedef,typename,union,unsigned,virtual,void,while。

19、第34页,共50页。1.4.2 编排 C+语言程序的书写格式自由度高,灵活性强,随意性大,如一行内可写一条语句,也可写几条语句;一个语句也可分写在多行内。不过应采用适当的格式书写,便于人们阅读和理解。第35页,共50页。 为了增加程序的可读性和利于理解,编写程序时按如下要点书写:1. 一般情况下每个语句占用一行;2. 不同结构层次的语句,从不同的起始位置开始,即在同一结构层次中的语句,缩进同样的字数;3. 表示结构层次的大括弧,写在该结构化语句第一个字母的下方,与结构化语句对齐,并占用一行;4. 适当加些空格和空行。第36页,共50页。1.4.3 注释 注释是用来帮助阅读、理解及维护程序。在编

20、译时,注释部分被忽略,不产生目标代码。C+语言提供两种注释方式。 一种是与C兼容的多行注释,用/*和*/分界。另一种是单行注释,以“/”开头的表明本行中“/”符号后的内容是注释。 第37页,共50页。1.5 C+程序的运行环境1. Turbo C+2.C+ Builder3.Dev-C+4.Visual C+Visual C+ 6.0在项目文件管理、调试及操作的亲和力等方面上都略胜一筹,故本书以其比较流行的汉化版本Visual C+ 6.05 SP6中文企业版作为编程环境。 第38页,共50页。 C+程序最早是在Microsoft Visual C+ 6.0(英文版,以下相同)环境中进行编辑、

21、编译、连接和执行。具体步骤如下:(1)启动Microsoft Visual C+ 6.0,见图1-1;1.5 C+程序的运行环境第39页,共50页。(2)单击【file】菜单中的【new】,弹出窗口,见图1-2; 第40页,共50页。(3)选中【Projects】选项卡,单击【Win32 Console Application】选项,在【Project name】编辑框中输入项目名称,在【Location】中选择项目存放的位置,单击【OK】按钮,创建一个项目,见图1-3; 第41页,共50页。(4)在【Source Files】文件夹中添加程序文件(扩展名为.cpp),并编辑程序,然后进行编译

22、和运行,见图1-4。 第42页,共50页。 本书所有程序都在Microsoft Visual C+ 6.0环境中调试通过。Microsoft Visual Studio 2005(中文版,以下相同)是比Microsoft Visual C+ 6.0集成度更高、功能更强、通用性更好的开发软件系统的工具,也可以作为C+程序的运行环境,而且比Microsoft Visual C+ 6.0具有更加强大的错误检查机制和更高的效率。 第43页,共50页。 C+程序在Microsoft Visual Studio 2005环境中的编辑、编译、连接和运行和在Microsoft Visual C+ 6.0环境中类似,具体步骤如下:(1)启动Microsoft Visu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论