Visual C++面向对象编程教程第2章 C++语言基础.ppt





《Visual C++面向对象编程教程第2章 C++语言基础.ppt》由会员分享,可在线阅读,更多相关《Visual C++面向对象编程教程第2章 C++语言基础.ppt(133页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、版权所有版权所有 复制必究复制必究本节主要内容本节主要内容:2.1.1 C+的主要特点的主要特点2.1.2 C+程序与程序与C程序程序2.1.3 C+对对C的一般扩充的一般扩充2.1.4 利用利用Visual C+编制和运行编制和运行C+程序程序2.1 C+概述概述C+语言是由贝尔实验室的BjarneStroustrup在1980年创建的。自90年代后,C+越来越受到重视并得到广泛的应用。lC+是由C扩充而来,因此,除了与C兼容,C+还继承了C的以下特点:丰富的运算符和数据类型、结构化的程序设计方法、高效的机器代码、良好的可移植性。l支持面向对象程序设计的方法。lC+的错误检查机制强,提供了专
2、门的机制检查类和异常处理功能。lC+有很多成熟的编译器:VisualC+、Inprise(被Borland兼并)的C+Builder、Borland的BorlandC+和IBM的VisualAgeC+。2.1.1 C+的主要特点的主要特点C语言程序语言程序:/*这是一个简单的C程序:simple.c*/#includevoidmain(void)printf(HelloWorld!n);/输出字符串用C+语言编写同样功能的程序 2.1.2 C+程序与程序与C程序程序C+语言程序:语言程序:/这是一个简单的C+程序:simple.cpp#includevoidmain(void)coutHell
3、oWorld!n;/输出字符串程序运行后在屏幕上输出:HelloWorld!(1)C+程序与C程序的结构完全相同。(2)C源程序文件的扩展名为C,C+源程序文件的扩展名为CPP。(3)C注 释 使 用 符 号“/*”和“*/”,表 示 符 号“/*”和“*/”之间的内容都是注释;C+除了支持这种注释,还提供了一个双斜线“/”注释符,表示“/”之后的本行内容是注释,注释在行尾自动结束。(4)C程序所包含的标准输入、输出的头文件是stdio.h,输入、输出通常通过调用函数来完成;而C+程序可以包含标准输入、输出流的头文件iostream.h,输入、输出可以通过使用标准输入、输出流对象来完成。C+程
4、序与程序与C程序的比较:程序的比较:l一个C+程序可以由多个函数构成;l每个程序都从主函数main()开始执行,从主函数返回时结束执行;l组成程序的语句主要包括声明语句和执行语句;l声明语句用于声明变量和函数,变量声明语句说明变量的名称和数据类型,函数声明语句说明函数的名称、参数类型和返回值;l执行语句包括:赋值语句、表达式语句、函数调用语句和流程控制语句等,它们写在一个函数中(包括主函数)。例例C+程序基本结构:程序基本结构:#includevoidmain()intmath,chem,phy,ave;coutmathchemphy;ave=(math+chem+phy)/3.0+0.5;/
5、0.5用于四舍五入if(ave=90)/使用ifelseif语句coutExcellent=60&ave90)coutPassn;elsecoutFail”流提取运算符或“”流插入运算符,分别将数据对象从输入流提取出来或插入到输出流,从而完成数据的输入和输出。使用C+面向流的输入、输出方式提高了程序的可读性,减少了错误的发生。例例 2.1.3 C+对对C的一般扩充的一般扩充#include/使用输入、输出流voidmain(void)coutxyz;/从键盘读取数据给变量x、y、zcoutThesumisx+y+zn;/输出结果例例例例 编写程序利用标准输入流接收用户从键盘输入的编写程序利用标
6、准输入流接收用户从键盘输入的数据,利用标准输出流将运算结果输出到屏幕。数据,利用标准输出流将运算结果输出到屏幕。程序运行的结果为:pleaseenterthevalueofx,y,z:2 4 6Thesumis12(1)启动Visual C+,执行“File|New”菜单命令,在New对话框的Projects页面左侧项目类型列表中选择Win32 Console Application项,在对话框右侧的Location和ProjectName框中分别输入路径和项目名称,单击OK按钮。2.1.4 利用利用Visual C+编制和运行编制和运行C+程序程序(2)进入Win32ConsoleAppli
7、cationstep-1of1对话框,选择AnEmptyProject项,单击Finish按钮。最后在NewProjectInformation对话框单击OK按钮完成项目的建立。(3)建 立 和 编 辑 C+源 程 序 文 件。执 行“Project|Add to Project|New”菜单命令,在New对话框的File页面选择C+Source File项,在File框中填入C+源文件名,确认选择Add toproject,单击OK按钮将打开文本编辑器。输入并编辑C+源程序代码。(4)建立可执行程序。执行“Build|Build”菜单命令(快捷键F7)即可建立可执行程序,若程序有语法错误,则
8、在屏幕下方的输出窗口中显示错误信息。(5)执行“Build|Execute”菜单命令即可在伪DOS状态下运行程序,也可进入DOS状态后运行已建立的程序。注意不能在Windows中直接运行一个控制台程序。也可采用另一种简单的方法编写C+程序,即执行“File|New|Files|C+Source File”菜单命令直接创建一个C+源文件,在执行Build命令时再建立项目工作区。作业作业:P60,2-2,2-3上机作业上机作业:P63,2-43,2-442.2 C+程序基本要素程序基本要素程序由语句组成,语句由基本要素组成。任何一种程序设计语言都有自己的一套语法规则以及按照语法规则构成的元素,程序
9、基本要素就是这样一种具有独立语法意义的元素。C+程序基本要素主要包括标识符、关键字、常量、变量、运算符和表达式等。l标识符是程序员或系统定义的符号,用以标识变量、函数、对象等。l标识符由字母、数字和下划线组成,它必须以字母或下划线开始。l为标识符取名时,尽量使用能够反映其用途的单词或缩写,这样可提高程序的可读性。2.2.1 标识符标识符例如:x,y,sum,length,Area,Myfun,m_xPos,CPerson,person1l关键字是C+编译器预定义的、具有固定含义的保留字,在程序中它们不能被作为一般的标识符使用。lC+增加了C不具有的关键字,并且不同C+编译器含有不同的关键字。2
10、.2.2 关键字关键字例如:auto,bool,break,case,char,class,const,continue,default,delete,do,double,else,enum,extern,false,float,for,friend,goto,if,inline,int,long,new,operator,private,protected,public,return,short,signed,sizeof,static,struct,switch,template,this,true,try,typedef,union,unsigned,using,virtual,void
11、,whilel在程序中使用的数据有常量和变量两种形式;l常量是不能被程序改变的固定值;l变量是可以被程序改变的数据。l常量和变量的主要区别在于:常量不占内存空间,不能为常量赋值;而变量需要占内存空间,可以给变量赋不同的值。l不管常量还是变量,程序中使用的每一个数据都属于一种特定的数据类型。l在使用变量之前,必须先利用标识符标识符声明变量。变量声明的形式 2.2.3 常量和变量常量和变量变量声明的一般形式如下:=,=,;变量声明语句说明了变量的名称和数据类型,程序中通过变量名来存取其中的数据,数据类型定义了变量的存储结构和可以进行的运算。编译程序要为声明的变量分配存储空间,并可以给变量赋一个初始
12、值。例如:intx;floatradius=123.56intx,y=100;2.2.4 运算符和表达式运算符和表达式 运算符:运算符:l运算是对数据进行加工的过程,表示各种不同运算的符号称为运算符,而参与运算的数据称为操作数。l运算符实质上是系统预定义的函数名,而进行运算就是调用一个函数。l按运算符和操作数的运算性质,运算符可分为算术运算符、逻辑运算符、关系运算符和其它运算符(见表2-1)。例如:+、-、*、/、%、+、()、=、+=、-、&、b)&(x=y)表达式:表达式:l一个表达式由常量、变量、函数调用和运算符组成,每个表达式都将产生一个值,并且具有某种类型(称为该表达式的类型)。l表
13、达式隐含的数据类型取决于组成表达式的操作数的类型。l当表达式中的操作数都是常量时,称这个表达式是常量表达式。l在对一个表达式求值时,优先级高的运算符先运算,优先级低的运算符后运算。l运算符的结合性:右结合性和左结合性2.3 C+数据数据类型类型数据是程序加工的对象。C+将数据分为不同的数据类型,不管常量还是变量,它们都属于某一种数据类型。数据类型规定了数据的存储结构和可以进行的运算。C+中的数据类型分为:基本数据类型、指针类型和构造类型三大类。构造类型包括数组、结构和枚举等类型。2.3.1 基本数据类型基本数据类型l基本数据类型是C+预定义的数据类型,C+的基本数据类型包括字符型、整数型、实型
14、(单精度和双精度)和无值型。l每种基本数据类型都使用一个关键字来表示,如char、int、float、double和void等(见表)。l数组、指针和类等派生数据类型是程序员按照C+的语法要求在基本数据类型基础之上建立起来的。l除void数据类型以外,其它基本数据类型加类型修饰符signed、unsigned、short和long。例例例:intnum,total;floatv,r,h;inta=3;/等价于:inta(3);charc=A;longlx=12345678;unsignedintnWidth;可以使用运算符“()”进行强制类型转换:floatx=123.56;inti=(int
15、)x;/i=1232.3.2 const常量类型常量类型 lconst常量类型表示一个“常值变量”,即值不能被改变的变量。l声明一个const型变量只需在数据类型说明前加上关键字const。例如:constintsize=20;l用const声明的变量必须用常量或常量表达式初始化。一旦变量被声明为const型,禁止任何试图修改该变量的操作。如果知道一个变量赋初值后在生命周期里其值不变,用const限定该变量是程序设计的好习惯,如数组长度。前面介绍了基本数据类型,后面开始介绍指针类型和构造类型,包括数组、指针、字符串、结构和枚举等类型。数组属于构造类型,它是一组具有相同类型数据的有序集合,其中每
16、个数据称为数组的元素。数组按其下标的个数分为一维数组、二维数组和多维数组。一维数组的声明方式如下:常量表达式;二维数组的声明方式如下:常量表达式 常量表达式;数组名后括号中的常量表达式表示数组的长度,即数组所包含元素的数量。例如例如.2.3.3 数组数组 数组的使用:数组的使用:数组声明后,可以引用数组每个元素,但不能一次引用整个数组。数组元素作为一个简单的变量对待。数组元素的引用方式如下:下标表达式下标表达式 下标表达式 数组声明语句:floatscore30;/数组score有30个元素,其数据类型是float型intArray124;/数组Array有124个元素,其数据类型是int型注
17、意:注意:l数组元素的下标从0开始,直到数组长度减1,如:score0,score1,score29。l在编译C+源程序时,为了保证程序编译和运行的效率,C+编译系统不对数组下标进行越界检查,程序运行时系统也不会提出越界警告。因此在对数组元素进行操作时应格外注意,以免破坏其它存储单元的数据,否则可能造成不可预料的后果。数组的初始化数组的初始化l声明数组时可以用一个用花括号括起的常量列表对数组进行初始化,例如:floatgrade3=90.0,75.0,85.0;l二维数组和多维数组的初始化可以按照数组的排列顺序或分行赋初始值的方法。例如:inta23=2,4,6,8,10,12;/按数组的排列
18、顺序inta23=2,4,6,8,10,12;/分行赋初始值其中,2、4、6分别为a0的元素a00、a01和a02的初始值。数组的初始化数组的初始化l初始值的个数可以比数组元素的个数少,这时未提供初始值的元素被置为0。例如:inta23=2,4,6;l当提供全部的初始值时,数组第一维的长度可以省略。例如:floatgrade=90.0,75.0,85.0;inta3=2,4,6,8,10,12;数组使用举数组使用举例例例例输入10个学生某门课的成绩,然后按与输入次序相反的顺序输出成绩。#includevoidmain()inti;floatscore10;coutPleaseenter10sc
19、ores:;for(i=0;iscorei;/输入数据cout=0;i-)coutscorei;/逆向输出结果coutn;任何变量都有一个内存地址,这种地址称为指针,而指针变量是一种存放内存地址的变量。每一个指针变量都有相应的数据类型,该类型用以说明指针所指内存单元中存放的数据的类型。指针变量声明的一般形式为:*;符号“*”是指针类型说明符,声明变量是一个指针型变量。例如:int*pointer;int*pointer;/两条语句功能相同2.3.4 指针指针 l有两个与指针有关的运算符:取地址运算符“”和指针运算符“*”;l运算符“”用于取一个变量的地址;l运算符“*”以一个指针作为其操作数,
20、其运算结果表示所指向的变量;l“”运算和“*”运算互为逆运算。指针使用举指针使用举例例与指针有关的运算符与指针有关的运算符#includevoidmain()inta,b,*pa,*pb;a=10;b=20;pa=&a;pb=&b;/使pa指向a,pb指向bcout*pa,*pbn;pa=&b;pb=&a;/使pa指向b,pb指向acout*pa,*pbn;*pa=100;*pb=200;/分别对b和a赋值couta,bn;运行结果运行结果例例 指针的使用。指针的使用。程序运行结果:程序运行结果:10,2020,10200,100 如果先声明了变量,就可以在声明指针变量时对指针进行初始化。如下
21、所示:inta,b;int*pa=&a,*pb=&b;指针与数组指针与数组l指针与数组关系密切,编程时可以用指针代替下标引用数组元素,指针使数组的使用更为灵活、有效;l当声明一个数组后,编译程序会按照数组的类型和长度为它分配内存空间,数组名表示数组在内存中的首地址;l当用一个指针变量存储数组首地址时,该指针就指向这个数组,就可以通过指针运算间接访问数组的元素。例例 例例2利用指针引用数组的方法求一个数组中所有元素之和。#includevoidmain()inta=2,4,6,8,10;int*pa=a;/或pa=&a0intresult=0;for(inti=0;i5;i+)result+=*
22、pa;/通过指针访问数组元素pa+;/指针运算coutresult=resultn;lC+语言没有提供字符串类型,字符串变量是作为一维字符数组来处理。l字符串末尾必须加上一个字符串结束符“0”,但“0”不是字符串的有效字符,求字符串的长度时不能将它计算在内。l对于字符串常量(用一对双引号括起来的字符序列),C+编译程序自动在字符串的末尾加上字符0,因此,可以直接用一个字符串常量来初始化一个字符数组。例如例如.2.3.5 字符串字符串 例:例:字符串的初始化chars=Hello;初始化后,字符数组中每个元素的初始值如下:s0=H,s1=e,s2=l,s3=l,s4=o,s5=0。该字符数组长度
23、为6,但字符串长度为5。转义字符转义字符“”的使用:的使用:由于双引号用作字符串的界限符,所以在字符串中必须以转义字符“”表示双引号。例如:Pleaseentergood,编译器将这个字符串解释为:Pleaseentergood。通过指针使用字符串:通过指针使用字符串:可以通过指针引用字符数组,即可以通过指针来使用字符串。初始化语句可写为:char*ps=Hello;例例 例例输入一个字符串,计算字符串的长度。#includevoidmain(void)char*pStr1=Enterastring:;/使用字符指针char*pStr2=Thelengthofstringis:;charstr
24、ing100;/使用字符数组coutstring;/输入字符串intlength=0;while(stringlength!=0)/计算字符串长度length+;coutpStr2lengthn;/输出结果l结构(structure)属于构造类型,它是由多种类型的数据成分组成的数据类型。例如,一个职员的信息由ID号、姓名、性别、出生日期和工资等数据项组成,可采用结构类型来表示。l区别以前所介绍过的数据类型,结构的具体构成需要用户自己定义,即定义一个结构类型。l结构中的每个数据项称为成员,成员的类型可以是基本数据类型,也可以是一个诸如结构这样的构造类型。结构类型的定义形式:2.3.6 结构结构
25、结构类型定义的一般形式为:结构类型定义的一般形式为:struct;.;例例下面定义职员结构类型:structstafferintID;charname20;bool sex;float salary;定义了结构(类型),就可以用结构声明结构变量,结构变量的声明形式如下:;例如例如.例如,利用定义的职员结构staffer声明一个职员结构变量:stafferemployee1;注意:注意:不能在定义结构时对成员进行初始化,因为结构是一种数据类型,而不是一个变量。只有在声明一个结构变量时才可以对该结构变量的成员进行初始化。如下所示:stafferemployee1=110105,LiMing,1,3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Visual C+面向对象编程教程第2章 C+语言基础 C+ 面向 对象 编程 教程 语言 基础

限制150内