《c++程序设计》课件第2章C++基础知识.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《c++程序设计》课件第2章C++基础知识.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+程序设计 c+ 程序设计 课件 基础知识
- 资源描述:
-
1、第2章 C+基础知识第第2章章 C+基础知识基础知识本章学习要点本章学习要点从从C语言到语言到C+的发展历程的发展历程简单的简单的C+程序程序C+在面向过程程序设计方面在面向过程程序设计方面对对C的扩充的扩充C+的输入输出、数据类型、函数及指针的输入输出、数据类型、函数及指针C+的常变量、引用、名字空间、字符串变量的常变量、引用、名字空间、字符串变量C+程序的编写和实现程序的编写和实现2第第2章章 C+基础知识基础知识本章学习目标本章学习目标了解从了解从C语言到语言到C+的发展历程的发展历程对简单的对简单的C+程序有整体的感性认识程序有整体的感性认识掌握掌握C+在面向过程程序设计方面在面向过程
2、程序设计方面对对C的扩充的扩充掌握掌握C+的输入输出、数据类型、函数及指针的输入输出、数据类型、函数及指针掌握掌握C+的常变量、引用、名字空间、字符串变量的常变量、引用、名字空间、字符串变量熟悉熟悉C+程序的编写和实现流程程序的编写和实现流程34高级计算机语言举例图像来自图像来自 http:/www.engin.umd.umich.edu/CIS/course.des/cis400/2.1 从C语言到C+C+3.0C+2.0C+1.0带类的带类的CCC+4.0ANSI C+89年年,增加类增加类的多继承的多继承91年年,增增加模板加模板增加异常处理、名字空增加异常处理、名字空间、运行时类型识别
3、间、运行时类型识别97年年,美国美国C+标准正式发布标准正式发布56C语言的设计者语言的设计者Dennis M.Ritchie7C语言出现的历史背景语言出现的历史背景v C语言是在语言是在1972年至年至1973年间由美国的贝尔实验室的年间由美国的贝尔实验室的M.D.Ritchie和和K.Thompson以及英国剑桥大学的以及英国剑桥大学的M.Richards等为描述和实现等为描述和实现UNIX操作系统而设计的操作系统而设计的v最初的最初的C语言是附属于语言是附属于UNIX的操作系统环境,而它的的操作系统环境,而它的产生却可以更好地描述产生却可以更好地描述UNIX操作系统。时至今日,操作系统。
4、时至今日,C语言已独立于语言已独立于UNIX操作系统。它已成为微型、小型操作系统。它已成为微型、小型、中型、大型和超大型(巨型)计算机通用的一种程、中型、大型和超大型(巨型)计算机通用的一种程序设计语言。序设计语言。v随着随着C语言的不断发展、应用和普及,目前,语言的不断发展、应用和普及,目前,C语言语言已经能够在多种操作系统下运行,实用的已经能够在多种操作系统下运行,实用的C语言编译语言编译系统种类繁多,如系统种类繁多,如Microsoft C、Turbo C等。等。8D M.Ritchie和和Unix的设计者的设计者Ken Thompson接受美国国家技术勋章接受美国国家技术勋章C+的设计
5、者的设计者Bjarne Stroustrup9C+发展的历史背景发展的历史背景v目的是试图去分析目的是试图去分析UNIX的内核,并取名的内核,并取名为为“C with class”。v为了避免受到为了避免受到C语言的局限性,参考了语言的局限性,参考了很多的语言很多的语言 C+从从 Simula继承了继承了类类的概念的概念 从从Algol68继承了继承了运算符重载、引用以及在运算符重载、引用以及在任何地方声明变量的能力任何地方声明变量的能力,从从BCPL获得了获得了/注释,注释,从从Ada得到了得到了模板、名字空间和异常模板、名字空间和异常。10C与与C+C+虽然主要是以虽然主要是以C的基础发展
6、起来的一的基础发展起来的一门新语言,但他不是门新语言,但他不是C的替代品,不是的替代品,不是C的升级,的升级,C+和和C是兄弟关系,没有谁比是兄弟关系,没有谁比谁先进的说法;谁先进的说法;更重要的一点是更重要的一点是C和和C+各自的标准委员各自的标准委员会是独立的,最新的会是独立的,最新的C+标准是标准是C+98,最新的最新的C标准是标准是C99。11v下面看几个简单的下面看几个简单的C+程序程序【例2-1】在屏幕上输出一行字符“Hello C+!”。#include /包含头文件命令包含头文件命令using namespace std;/使用名字空间使用名字空间stdint main()co
7、utHello C+!”,叫,叫“提提取取”;cout对象对象和和cerr对象对象屏幕输出的运算符屏幕输出的运算符为为“”,叫,叫“插入插入”。14练习练习1.写一个写一个C+程序,完成在屏幕上输出:程序,完成在屏幕上输出:Hello C+!This is my frist program!2.写一个函数,完成两个整型变量的交换写一个函数,完成两个整型变量的交换,并在,并在main函数中完成子函数的调用函数中完成子函数的调用。【例例2-2】通过函数求两个整数通过函数求两个整数a和和b的和。的和。#include /包含头文件命令包含头文件命令using namespace std;/使用名字空
8、间使用名字空间stdint sum(int x,int y)return x+y;/求和函数求和函数int main()int a,b;/定义两个变量定义两个变量a和和b coutInput to a and b:ab;/等待用户从键盘输入数据等待用户从键盘输入数据 couta+b=sum(a,b)endl;return 0;2.2 简单简单C+程序程序C+的函数和C语言的函数非常相似 函数的使用仍然需要先声明后使用。如果函数定义在函数调用之后,则必须在前面声明函数原型注意16#include /包含头文件命令包含头文件命令using namespace std;/使用名字空间使用名字空间st
9、dint main()int a,b;/定义两个变量定义两个变量a和和b coutInput to a and b:ab;/等待用户从键盘输入数据等待用户从键盘输入数据 int sum(int x,int y);/sum函数原型声明函数原型声明 couta+b=sum(a,b)endl;return 0;int sum(int x,int y)return x+y;/求和函数求和函数2.2 简单简单C+程序程序变量可以在程序的变量可以在程序的任何地方定义,但任何地方定义,但要在使用前要在使用前172.2 简单简单C+程序程序【例例2-3】声明一个关于人的类声明一个关于人的类PersonPers
10、on,人的信息包括,人的信息包括姓名、性别、年龄,程序运行后,我们可以输入自己姓名、性别、年龄,程序运行后,我们可以输入自己的信息,也可以显示自己的信息。的信息,也可以显示自己的信息。#include /包含头文件命令包含头文件命令 using namespace std;/使用名字空间使用名字空间std class Person int main();return 0;182.2 简单简单C+程序程序class Person /类的声明类的声明public:/以下为类的公用成员函数以下为类的公用成员函数void SetInfo()/公用成员函数公用成员函数SetInfo coutnamese
11、xage;void Show()/公用成员函数公用成员函数Show cout name:name;cout sex:sex;cout age:ageendl;private:/以下为类的私有数据成员以下为类的私有数据成员char name20;/私有数据成员私有数据成员namechar sex2;/私有数据成员私有数据成员sexint age;/私有数据成员私有数据成员age;/类声明结束,此处必须有分号类声明结束,此处必须有分号 192.2 简单简单C+程序程序int main()/main函数函数 /定义定义Person类的两个对象类的两个对象person1,person2Person p
12、erson1,person2;person1.SetInfo();/对象对象person1信息输入信息输入person2.SetInfo();/对象对象person2信息输入信息输入person1.Show();/对象对象person1信息输出信息输出person2.Show();/对象对象person2信息输出信息输出return 0;20注意:注意:类的声明和对象的定义的语法形式。类中的成员分为数据成员和成员函数,成员的可见性分为 3种:公用、私有、受保护。类的概念的理解:类是一种用户自定义数据类型,它是不占用实际存储空间的。对象的理解:对象是类类型的变量,系统会为对象分配内存空间。2.2
13、 简单简单C+程序程序212.3 C+对对C的扩充的扩充v在输入输出方面的扩充在输入输出方面的扩充v对数据类型的扩充对数据类型的扩充v常变量常变量v在指针方面的扩充在指针方面的扩充v引用的概念引用的概念v在函数方面的扩充在函数方面的扩充v名字空间的概念名字空间的概念v字符串变量字符串变量本章重点本章重点222.3.1 C+的输入输出的输入输出vC语言输入输出的实现语言输入输出的实现 通过输入输出库函数实现通过输入输出库函数实现 C语言的输入输出存在着格式复杂、无法保证安语言的输入输出存在着格式复杂、无法保证安全性、无法对自定义类型整体输入输出等缺点全性、无法对自定义类型整体输入输出等缺点v C
14、+对对C输入输出的扩充输入输出的扩充 C+的输入的输入/输出(输出(I/O)流类库)流类库“流流”的思想的思想 cout、cin对象对象,运算符运算符232.3.2 数据类型的扩展数据类型的扩展空类型引用类型指针类型类类型共用体类型结构体类型数组类型枚举类型构造类型布尔型长双精度型双精度型单精度型浮点型字符型长整型整型短整型整型基本类型数据类型新增数新增数据类型据类型功能进行功能进行了扩充了扩充24布尔类型(布尔类型(bool)vbool、false和和true均为均为C+关键字。关键字。v系统将系统将false的值转换为的值转换为0,将,将true的值转的值转换为换为1,就有,就有false
15、true。vbool型数据占据型数据占据1字节内存。字节内存。25vC+对对C语言的语言的结构体、共用体、枚举结构体、共用体、枚举等自定义数据类型做了扩充。等自定义数据类型做了扩充。2.3.2 数据类型的扩展数据类型的扩展26struct Student int num;char name20;char sex;void display()coutnum=numendl;coutname=nameendl;coutsex=sexendl;2.3.2 数据类型的扩展数据类型的扩展27struct Student private:int num;char name20;char sex;publi
16、c:void display()coutnum=numendl;coutname=nameendl;coutsex=sexendl;StudentStudent stud1,stud2;stud1,stud2;2.3.2 数据类型的扩展数据类型的扩展28在在C+中用中用结构体类型名、共用体类型名、结构体类型名、共用体类型名、枚举类型名枚举类型名定义变量时,不必定义变量时,不必在类型名前在类型名前加加上上前缀前缀struct、union、enum。2.3.2 数据类型的扩展数据类型的扩展29struct student char ID15;char name20;int age;union xy
17、 int x;char y;enum color black,white,redstudent stud;xy x1;color col;struct student stud;unoin xy x1;enum color col;C语语言言C+2.3.2 数据类型的扩展数据类型的扩展302.3.3 用用const定义常变量定义常变量v直接常量和符号常量直接常量和符号常量v使用符号常量需要注意的问题:使用符号常量需要注意的问题:运行时不分配内存单元运行时不分配内存单元 符号常量没有类型,在编译时不进行类型符号常量没有类型,在编译时不进行类型检查检查 注意替换后的表达式和预想的表达式是否注意替换
18、后的表达式和预想的表达式是否一致一致#define PI 3.14159#define R 1+2 coutPI*R*Rendl;输出语句输出的并不是输出语句输出的并不是 3.14159*(1+2)*(1+2),而是而是 3.14159*1+2*1+2。312.3.3 用用const定义常变定义常变量量v为了使常量也能像变量那样进行类型检为了使常量也能像变量那样进行类型检查,查,C+提供了用提供了用const定义常变量的方定义常变量的方法法v定义常变量的语法:定义常变量的语法:const float PI=3.14159;注意:注意:常变量要在定义的同时进行初始化,常变量要在定义的同时进行初始
19、化,可以是具体的数值,也可以是表达式。可以是具体的数值,也可以是表达式。32【例例2-4】利用常变量计算圆的面积。利用常变量计算圆的面积。#include using namespace std;int main()const float PI=3.14;/定义常变量定义常变量 float radius=0;coutradius;coutThe area of circle is:PI*radius*radiusendl;return 0;2.2 简单简单C+程序程序注意注意constconst的位置,一般见到的的位置,一般见到的constconst的位置可能在的位置可能在类型的前面,但是类型
20、的前面,但是constconst也可以在变量名前面,并且也可以在变量名前面,并且两者的含义完全相同。两者的含义完全相同。注意 float const PI=3.14;/定义常变量定义常变量332.3.5 引用引用v引用引用就是某一变量的就是某一变量的别名别名,对引用的,对引用的操作与对变量直接操作完全一样操作与对变量直接操作完全一样 v引用的声明方法引用的声明方法 类型标识符类型标识符&引用名引用名=目标变量名目标变量名;342.3.5 引用引用vint a;vint&b=a;20地址地址2000变量变量a引用引用bv在声明一个引用时,引用前面的类型标示在声明一个引用时,引用前面的类型标示符是
21、指目标变量的类型,且必须同时使之符是指目标变量的类型,且必须同时使之初始化,即声明它代表哪一个变量初始化,即声明它代表哪一个变量.35【例例2-12】使用引用访问变量。使用引用访问变量。#include using namespace std;int main()int x=100;/定义整型变量定义整型变量x int&rx=x;/定义变量定义变量x的引用的引用rx coutrx=rxendl;/输出引用输出引用rx的内容的内容 rx=200;/给引用给引用rx赋值赋值 coutx=xendl;/输出变量输出变量x的内容的内容 return 0;程序运行结果如下:程序运行结果如下:rx=100
22、 x=2002.3.5 引用引用36补充:关于引用的简单说明补充:关于引用的简单说明v(1)引用并不是一种独立的数据类型,)引用并不是一种独立的数据类型,声明引用时必须指定其代表某一类型的实声明引用时必须指定其代表某一类型的实体(如变量、类对象),即对它初始化。体(如变量、类对象),即对它初始化。int a;int&b=a;int&b;float a;int&b=a;37v(2)引用与其所代表的变量共享同一内)引用与其所代表的变量共享同一内存单元,系统并不为引用另外分配存储空存单元,系统并不为引用另外分配存储空间。间。int a=3;int&b=a;cout&a“&bendl;补充:关于引用的
23、简单说明补充:关于引用的简单说明38int a=3;int&b=a;/声明声明b是整型变量的别名是整型变量的别名int&c=b;/声明声明c是整型引用是整型引用b的别名的别名v(3)对引用的初始化,可以用一个变量)对引用的初始化,可以用一个变量名,也可以用另一个引用。如:名,也可以用另一个引用。如:补充:关于引用的简单说明补充:关于引用的简单说明39v(4)引用在初始化后不能再被重新声明)引用在初始化后不能再被重新声明为另一变量的别名。为另一变量的别名。int a=3,b=4;int&c=a;int&c=b;/企图重新声明企图重新声明c为整型变量为整型变量b的别名的别名补充:关于引用的简单说明
24、补充:关于引用的简单说明40v(5)当当&a的前面有类型符时(如的前面有类型符时(如 int&a),它必然是对引用的声明;如果前面没有类型符它必然是对引用的声明;如果前面没有类型符时(时(p=&a),此时的,此时的&是取地址运算符。是取地址运算符。int a=3,b=4;int&c=a;int*p=&b;补充:关于引用的简单说明补充:关于引用的简单说明41引用的使用引用的使用#include int main()int a=1;int c=10;int&b=a;cout a ,b,c endl;b=c;cout a ,b,c endl;b=20;cout a ,b,c endl;程序运行结果:
25、程序运行结果:1 1,1 1,10101010,1010,10102020,2020,1010定义引用定义引用b,并将,并将其作为其作为a的别名的别名将将c的值赋给的值赋给b,不是,不是将将b作为作为c的别名的别名v实际上,在实际上,在C+程序中很少使用独立变量的引程序中很少使用独立变量的引用,如果要使用某一个变量,就直接使用它的用,如果要使用某一个变量,就直接使用它的原名,没有必要故意使用它的别名。前面举的原名,没有必要故意使用它的别名。前面举的例子只是为了说明引用的特征和基本的用法。例子只是为了说明引用的特征和基本的用法。vC+之所以增加之所以增加“引用引用”,主要是利用它作为,主要是利用
展开阅读全文