C++程序设计基础.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C++程序设计基础.pdf》由会员分享,可在线阅读,更多相关《C++程序设计基础.pdf(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+C+程序设计基础程序设计基础程序设计基础程序设计基础福州大学数学与计算机科学学院福州大学数学与计算机科学学院福州大学数学与计算机科学学院福州大学数学与计算机科学学院吴英杰吴英杰吴英杰吴英杰2009-2-22福州大学数学与计算机科学学院福州大学数学与计算机科学学院2C+语言概述语言概述面向对象的程序设计语言面向对象的程序设计语言 C+支持数据封装支持数据封装 C+类中包含私有、公有和保护成员类中包含私有、公有和保护成员 C+通过发送消息来处理对象通过发送消息来处理对象 C+中允许友元破坏封装性中允许友元破坏封装性 C+允许函数名和运算符重载允许函数名和运算符重载 C+支持继承性支持继承性 C
2、+支持动态联编支持动态联编在在C+中,结构可作为一种特殊的类,它虽然可以包含函数,但它中,结构可作为一种特殊的类,它虽然可以包含函数,但它没有私有或保护的成员没有私有或保护的成员。在在C+中,中,类类是支持数据封装的工具,是支持数据封装的工具,对象对象则是数据封装的实现。则是数据封装的实现。类类是类型,是对象的抽象,是类型,是对象的抽象,对象对象是类的具体实例。一个类可以有多个对象,每个对象都有自己的存储单元,而类不占存储单元。是类的具体实例。一个类可以有多个对象,每个对象都有自己的存储单元,而类不占存储单元。C+中类是中类是数据和函数数据和函数的封装体,它提供一种数据访问严格控制的机制,数据
3、被隐藏在封装体中,该封装体通过操作接口与外界交换信息。的封装体,它提供一种数据访问严格控制的机制,数据被隐藏在封装体中,该封装体通过操作接口与外界交换信息。友元可以是在类外定义的函数,也可以是在类外定义的整个类。友元可以访问类的友元可以是在类外定义的函数,也可以是在类外定义的整个类。友元可以访问类的私有成员私有成员。面向对象的程序设计的四大特征:面向对象的程序设计的四大特征:抽象、封装、继承、多态。抽象、封装、继承、多态。2009-2-22福州大学数学与计算机科学学院福州大学数学与计算机科学学院3C+与与C语言的关系:语言的关系:C语言是语言是C+的一个子集,的一个子集,C+包含了包含了C语言
4、的全部内容。语言的全部内容。C+保持与保持与C语言的兼容语言的兼容 C+对对C语言作了很多改进语言作了很多改进 C+与与C语言的本质差别在于语言的本质差别在于C+是面向对象的,而是面向对象的,而C语言是面向过程的。语言是面向过程的。(1)增加了一些增加了一些新的运算符新的运算符,如,如:,new,delete,-*等;等;(2)改进了改进了类型系统类型系统,增加了安全性;,增加了安全性;(3)引进了引进了引用引用的概念,使用引用作函数参数带来了很大方便;的概念,使用引用作函数参数带来了很大方便;(4)允许允许函数重载函数重载,允许,允许设置缺省参数设置缺省参数,提高了编程的灵活性;,提高了编程
5、的灵活性;(5)引进引进内联函数内联函数,提高了程序效率;,提高了程序效率;(6)可根据需要可根据需要随时对变量进行说明随时对变量进行说明。面向过程的程序设计面向过程的程序设计将数据和对数据的操作分离,程序是由一个个的函数组成的,将数据和对数据的操作分离,程序是由一个个的函数组成的,面向对象的程序设计面向对象的程序设计将数据和操作封装在一起,程序是由一个个对象组成的,对象之间通过接口进行通信,它能够较好地支持程序代码的复用。将数据和操作封装在一起,程序是由一个个对象组成的,对象之间通过接口进行通信,它能够较好地支持程序代码的复用。2009-2-22福州大学数学与计算机科学学院福州大学数学与计算
6、机科学学院4C+数据操作基础数据操作基础2.1 C+程序进行输入和输出的操作方法程序进行输入和输出的操作方法#include int main()int x,y;/定义两个整型变量定义两个整型变量cin x y;/键盘输入变量值键盘输入变量值cout“x=”x endl “y=”y”和输出操作符“”和输出操作符“=0)?a:-a注意:注意:表达式表达式1、2、3的数据类型不能是的数据类型不能是 void 类型。类型。2009-2-22福州大学数学与计算机科学学院福州大学数学与计算机科学学院9switch(变量名变量名)case 值值1:语句序列语句序列1;break;case 值值 2:语句序
7、列语句序列2;break;default:语句序列语句序列 n;2009-2-22福州大学数学与计算机科学学院福州大学数学与计算机科学学院102.2.2 循环语句循环语句for 循环:循环:for(exp1;exp2;exp3)statement;.while 循环:循环:while(expression)do while 循环:循环:do statement;.while(expression);三种循环都可以嵌套。三种循环都可以嵌套。2009-2-22福州大学数学与计算机科学学院福州大学数学与计算机科学学院11for(exp1;exp2;exp3)statement;.等价于:等价于:ex
8、p1;while(exp2)statement;exp3;例:例:int sum=0;for(int I=1;I=10;I+)sum+=I;2009-2-22福州大学数学与计算机科学学院福州大学数学与计算机科学学院122.2.3 转移语句转移语句break 语句:强制退出循环及中断语句:强制退出循环及中断case语句,直接执行循环体后的语句。语句,直接执行循环体后的语句。continue 语句:不完全退出循环,而是使循环重新回到测试位置,并忽略此语句至循环结束前的语句序列。语句:不完全退出循环,而是使循环重新回到测试位置,并忽略此语句至循环结束前的语句序列。goto 语句:无条件转移,只限在同
9、一程序段内转换,不能跳到另一函数或程序内。语句:无条件转移,只限在同一程序段内转换,不能跳到另一函数或程序内。2009-2-22福州大学数学与计算机科学学院福州大学数学与计算机科学学院132.3 指针2.3 指针1.定义定义:包含另一变量内存地址的变量。包含另一变量内存地址的变量。3.指针与数组的关系指针与数组的关系数组是指针的另一种表示法。数组的名字实际就是数组的起始地址。数组是指针的另一种表示法。数组的名字实际就是数组的起始地址。int arr2=0,1;arr1 和和*(arr+1)是完全一致的。是完全一致的。2.声明声明指针在使用前需进行声明,声明格式为:指针在使用前需进行声明,声明格
10、式为:数据类型数据类型*变量;变量;或或 数据类型数据类型*变量;变量;2009-2-22福州大学数学与计算机科学学院福州大学数学与计算机科学学院144.“&”与与“*”“&”是一个一元操作符,它操作一个对象,得到该对象的存储单元的地址值;是一个一元操作符,它操作一个对象,得到该对象的存储单元的地址值;例:例:int i;int*p;p=&i;*p=*p+5;“*”也是一个一元操作符,用于表达被指针指向的对象。也是一个一元操作符,用于表达被指针指向的对象。2009-2-22福州大学数学与计算机科学学院福州大学数学与计算机科学学院155.new 与与 deletenew 用于为指针分配内存空间;
11、用于为指针分配内存空间;delete 用于释放指针所占有的内存空间。用于释放指针所占有的内存空间。标准标准C用用malloc 和和 free 函数分配内存块和释放内存块。函数分配内存块和释放内存块。2009-2-22福州大学数学与计算机科学学院福州大学数学与计算机科学学院16?(5.1)运算符运算符new:?运算符运算符new用于动态存储分配。用于动态存储分配。?new返回一个指向所分配空间的指针。返回一个指向所分配空间的指针。?例:例:int y;y=new int;y=10;?也可将上述各语句作适当合并如下:也可将上述各语句作适当合并如下:?int y=new int;y=10;?或或 i
12、nt y=new int(10);?或或 int y;y=new int(10);2009-2-22福州大学数学与计算机科学学院福州大学数学与计算机科学学院17(5.2)一维数组:一维数组:?为了在运行时创建一个大小可动态变化的一维浮点数组为了在运行时创建一个大小可动态变化的一维浮点数组x,可先将,可先将x声明为一个声明为一个float类型的指针。然后用类型的指针。然后用new为数组动态地分配存储空间。为数组动态地分配存储空间。?例:例:?float x=new floatn;?创建一个大小为创建一个大小为n的一维浮点数组。运算符的一维浮点数组。运算符new分配分配n个浮点数所需的空间,并返回
13、指向第一个浮点数的指针。然后可用个浮点数所需的空间,并返回指向第一个浮点数的指针。然后可用x0,x1,xn-1来访问每个数组元素。来访问每个数组元素。2009-2-22福州大学数学与计算机科学学院福州大学数学与计算机科学学院18(5.3)运算符运算符delete:?当动态分配的存储空间已不再需要时应及时释放所占用的空间。当动态分配的存储空间已不再需要时应及时释放所占用的空间。?用运算符用运算符delete来释放由来释放由new分配的空间。分配的空间。?例:例:?delete y;?delete x;?分别释放分配给分别释放分配给y的空间和分配给一维数组的空间和分配给一维数组x的空间。的空间。2
14、009-2-22福州大学数学与计算机科学学院福州大学数学与计算机科学学院19?当不再需要一个动态分配的二维数组时,可按以下步骤释放它所占用的空间。首先释放在当不再需要一个动态分配的二维数组时,可按以下步骤释放它所占用的空间。首先释放在for循环中为每一行所分配的空间。然后释放为行指针分配的空间。循环中为每一行所分配的空间。然后释放为行指针分配的空间。?释放空间后将释放空间后将x置为置为0,以防继续访问已被释放的空间。,以防继续访问已被释放的空间。template void Delete2DArray(Type*&x,int rows)for(int i=0;irows;i+)delete xi
15、;delete x;x=0;2009-2-22福州大学数学与计算机科学学院福州大学数学与计算机科学学院20(5.4)动态二维数组:动态二维数组:?创建类型为创建类型为Type的动态工作数组,这个数组有的动态工作数组,这个数组有rows行和行和cols列。列。template void Make2DArray(Type*&x,int rows,int cols)x=new Type*rows;for(int i=0;irows;i+)xi=new Typecols;2009-2-22福州大学数学与计算机科学学院福州大学数学与计算机科学学院212.4 函数与参数传递函数与参数传递当一个函数定义有形
16、参时,在进行函数调用时,必须提供与形参个数、类型相同的实参。当一个函数定义有形参时,在进行函数调用时,必须提供与形参个数、类型相同的实参。在在C+中,有两种参数传递机制将实参的值传递给形参:中,有两种参数传递机制将实参的值传递给形参:值传递值传递(值调用值调用)和和引用传递引用传递(引用调用引用调用)。1.值传递值传递在这种机制中,实参的值被在这种机制中,实参的值被拷贝拷贝到由相应形参名字所标识的对象中。在函数内部对形参的访问或更新都是是对这个对象的访问或更新。到由相应形参名字所标识的对象中。在函数内部对形参的访问或更新都是是对这个对象的访问或更新。实参本身的值在调用前后和调用过程中都不发生变
17、化。实参本身的值在调用前后和调用过程中都不发生变化。2009-2-22福州大学数学与计算机科学学院福州大学数学与计算机科学学院22int double(int a)a*=2;cout“a=“aendl;return a;#include void main()int b=10;double(b);cout“b=“数据成员数据成员指针名指针名-成员函数成员函数例:例:CPerson*pWang;pWang-age=30;pWang-PrintAge();类和对象的关系就如同整型类和对象的关系就如同整型 int 与整型变量与整型变量 i 之间的关系。之间的关系。2009-2-22福州大学数学与计算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 基础
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内