ImageVerifierCode 换一换
格式:PPT , 页数:55 ,大小:309.51KB ,
文档编号:3376965      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-3376965.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(三亚风情)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(C语言试题、学习、考试大全34课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

C语言试题、学习、考试大全34课件.ppt

1、2022-8-8福州大学数学与计算机科学学院12022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院2C+语言概述语言概述面向对象的程序设计语言面向对象的程序设计语言 C+支持数据封装支持数据封装 C+类中包含私有、公有和保护成员类中包含私有、公有和保护成员 C+通过发送消息来处理对象通过发送消息来处理对象 C+中允许友元破坏封装性中允许友元破坏封装性 C+允许函数名和运算符重载允许函数名和运算符重载 C+支持继承性支持继承性 C+支持动态联编支持动态联编在在C+中,结构可作为一种特殊的类,它虽然可中,结构可作为一种特殊的类,它虽然可以包含函数,但它以包含函数,但它没有私有或

2、保护的成员没有私有或保护的成员。在在C+中,中,类类是支持数据封装的工具,是支持数据封装的工具,对象对象则是数则是数据封装的实现。据封装的实现。类类是类型,是对象的抽象,是类型,是对象的抽象,对象对象是是类的具体实例。一个类可以有多个对象,每个对象类的具体实例。一个类可以有多个对象,每个对象都有自己的存储单元,而类不占存储单元。都有自己的存储单元,而类不占存储单元。C+中类是中类是数据和函数数据和函数的封装体,它提供一种数据的封装体,它提供一种数据访问严格控制的机制,数据被隐藏在封装体中,该访问严格控制的机制,数据被隐藏在封装体中,该封装体通过操作接口与外界交换信息。封装体通过操作接口与外界交

3、换信息。友元可以是在类外定义的函数,也可以是在类外友元可以是在类外定义的函数,也可以是在类外定义的整个类。友元可以访问类的定义的整个类。友元可以访问类的私有成员私有成员。面向对象的程序设计的四大特征:面向对象的程序设计的四大特征:抽象、封装、抽象、封装、继承继承、多态多态。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院3C+与与C语言的关系:语言的关系:C语言是语言是C+的一个子集,的一个子集,C+包含了包含了C语言的全部内容。语言的全部内容。C+保持与保持与C语言的兼容语言的兼容 C+对对C语言作了很多改进语言作了很多改进 C+与与C语言的本质差别在于语言的本质差别

4、在于C+是面向对象的,而是面向对象的,而C语言是面向过程的。语言是面向过程的。(1)增加了一些增加了一些新的运算符新的运算符,如,如:,new,delete,-*等;等;(2)改进了改进了类型系统类型系统,增加了安全性;,增加了安全性;(3)引进了引进了引用引用的概念,使用引用作函数参数带来了很大方的概念,使用引用作函数参数带来了很大方便;便;(4)允许允许函数重载函数重载,允许,允许设置缺省参数设置缺省参数,提高了编程的灵活,提高了编程的灵活性;性;(5)引进引进内联函数内联函数,提高了程序效率;,提高了程序效率;(6)可根据需要可根据需要随时对变量进行说明随时对变量进行说明。面向过程的程序

5、设计面向过程的程序设计将数据和对数据的操作分离,程序是将数据和对数据的操作分离,程序是由一个个的函数组成的,由一个个的函数组成的,面向对象的程序设计面向对象的程序设计将数据和操将数据和操作封装在一起,程序是由一个个对象组成的,对象之间通作封装在一起,程序是由一个个对象组成的,对象之间通过接口进行通信,它能够较好地支持程序代码的复用。过接口进行通信,它能够较好地支持程序代码的复用。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院4C+数据操作基础数据操作基础2.1 C+程序进行输入和输出的操作方法程序进行输入和输出的操作方法#include int main()int x

6、,y;/定义两个整型变量定义两个整型变量 cin x y;/键盘输入变量值键盘输入变量值 cout“x=”x endl “y=”y”和输出操作符和输出操作符“=0)?a:-a 注意:注意:表达式表达式1、2、3的数据类型不能是的数据类型不能是 void 类型。类型。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院9switch(变量名变量名)case 值值1:语句序列语句序列1;break;case 值值 2:语句序列语句序列2;break;default:语句序列语句序列 n;2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院102.2.2 循环

7、语句循环语句for 循环:循环:for(exp1;exp2;exp3)statement;.while 循环:循环:while(expression)do while 循环:循环:do statement;.while(expression);三种循环都可以嵌套。三种循环都可以嵌套。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院11 for(exp1;exp2;exp3)statement;.等价于:等价于:exp1;while(exp2)statement;exp3;例:例:int sum=0;for(int i=1;i=10;i+)sum+=i;2022-8-8福

8、州大学数学与计算机科学学院福州大学数学与计算机科学学院122.2.3 转移语句转移语句break 语句:语句:强制退出循环及中断强制退出循环及中断case语句,直接语句,直接执行循环体后的语句。执行循环体后的语句。continue 语句:不完全退出循环,而是使循环重语句:不完全退出循环,而是使循环重新回到测试位置,并忽略此语句至循环结束前新回到测试位置,并忽略此语句至循环结束前的语句序列。的语句序列。goto 语句:无条件转移,只限在同一程序段内转换,语句:无条件转移,只限在同一程序段内转换,不能跳到另一函数或程序内。不能跳到另一函数或程序内。2022-8-8福州大学数学与计算机科学学院福州大

9、学数学与计算机科学学院132.3 2.3 指针指针 1.定义定义:包含另一变量内存地址的变量。包含另一变量内存地址的变量。3.指针与数组的关系指针与数组的关系 数组是指针的另一种表示法。数组的名字实际就数组是指针的另一种表示法。数组的名字实际就是数组的起始地址。是数组的起始地址。int arr2=0,1;arr1 和和*(arr+1)是完全一致的。是完全一致的。2.声明声明 指针在使用前需进行声明,声明格式为:指针在使用前需进行声明,声明格式为:数据类型数据类型 *变量;变量;或或 数据类型数据类型*变量;变量;2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院144.“

10、&”与与 “*”“&”是一个一元操作符,它操作一个对象,是一个一元操作符,它操作一个对象,得到该对象的存储单元的地址值;得到该对象的存储单元的地址值;例:例:int i;int *p;p=&i;*p=*p+5;“*”也是一个一元操作符,用于表达被指针指也是一个一元操作符,用于表达被指针指向的对象。向的对象。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院155.new 与与 delete new 用于为指针分配内存空间;用于为指针分配内存空间;delete 用于释放指用于释放指针所占有的内存空间。针所占有的内存空间。标准标准C用用malloc 和和 free 函数分配内

11、存块和释放内存块。函数分配内存块和释放内存块。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院16w(5.1)运算符运算符new:w运算符运算符new用于动态存储分配。用于动态存储分配。wnew返回一个指向所分配空间的指针。返回一个指向所分配空间的指针。w例:例:int y;y=new int;y=10;w也可将上述各语句作适当合并如下:也可将上述各语句作适当合并如下:wint y=new int;y=10;w或或 int y=new int(10);w或或 int y;y=new int(10);2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院

12、17(5.2)一维数组一维数组:w为了在运行时创建一个大小可动态变化的一维浮点数为了在运行时创建一个大小可动态变化的一维浮点数组组x,可先将,可先将x声明为一个声明为一个float类型的指针。然后用类型的指针。然后用new为数组动态地分配存储空间。为数组动态地分配存储空间。w例:例:wfloat x=new floatn;w创建一个大小为创建一个大小为n的一维浮点数组。运算符的一维浮点数组。运算符new分配分配n个浮点数所需的空间,并返回指向第一个浮点数的指个浮点数所需的空间,并返回指向第一个浮点数的指针。然后可用针。然后可用x0,x1,xn-1来访问每个数组来访问每个数组元素。元素。2022

13、-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院18(5.3)运算符运算符delete:w当动态分配的存储空间已不再需要时应及时释放所占当动态分配的存储空间已不再需要时应及时释放所占用的空间。用的空间。w用运算符用运算符delete来释放由来释放由new分配的空间。分配的空间。w例:例:wdelete y;wdelete x;w分别释放分配给分别释放分配给 y的空间和分配给一维数组的空间和分配给一维数组x的空间。的空间。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院19(5.4)动态二维数组动态二维数组:w创建类型为创建类型为Type的动态工作数组,这

14、个数组有的动态工作数组,这个数组有rows行行和和cols列。列。template void Make2DArray(Type*&x,int rows,int cols)x=new Type*rows;for(int i=0;irows;i+)xi=new Typecols;2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院20w当不再需要一个动态分配的二维数组时,可按以下步骤释放它所当不再需要一个动态分配的二维数组时,可按以下步骤释放它所占用的空间。首先释放在占用的空间。首先释放在for循环中为每一行所分配的空间。然后循环中为每一行所分配的空间。然后释放为行指针分配的空

15、间。释放为行指针分配的空间。w释放空间后将释放空间后将x置为置为0,以防继续访问已被释放的空间。,以防继续访问已被释放的空间。template void Delete2DArray(Type*&x,int rows)for(int i=0;irows;i+)delete xi;delete x;x=0;2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院212.4 函数与参数传递函数与参数传递 当一个函数定义有形参时,在进行函数调用时,必须当一个函数定义有形参时,在进行函数调用时,必须提供与形参个数、类型相同的实参。提供与形参个数、类型相同的实参。在在C+中,有两种参数传递

16、机制将实参的值传递给形中,有两种参数传递机制将实参的值传递给形参:参:值传递值传递(值调用值调用)和和引用传递引用传递(引用调用引用调用)。1.值传递值传递 在这种机制中,实参的值被在这种机制中,实参的值被拷贝拷贝到由相应形参名字所到由相应形参名字所标识的对象中。在函数内部对形参的访问或更新都是是标识的对象中。在函数内部对形参的访问或更新都是是对这个对象的访问或更新。对这个对象的访问或更新。实参本身的值在调用前后和实参本身的值在调用前后和调用过程中都不发生变化。调用过程中都不发生变化。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院22int double(int a)

17、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 之间的之间的关系。关系。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院333.3 类的成员类的成员3.3.1 构造函数构造函数 构造函数是一个特殊的构造函数是一个特殊的类成员函数类成员函数,用

18、于初始化类变量,用于初始化类变量或分配内存空间。当用类定义一个对象时,或分配内存空间。当用类定义一个对象时,自动调用自动调用构造构造函数,使对象保持一个确定的状态。函数,使对象保持一个确定的状态。1.构造函数的声明构造函数的声明class CExample int I;public:CExample();;2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院342.构造函数的特点构造函数的特点 (1)构造函数与类必须具有相同的名字。构造函数与类必须具有相同的名字。例例:class CExample CExample();CExample(int i);CExample(in

19、t x,int y);private:int member1,member2;(2)创建对象时自动执行构造函数,构造函数不能在程创建对象时自动执行构造函数,构造函数不能在程 序中被显式调用。序中被显式调用。(3)构造函数不需要函数类型,不能被继承。构造函数不需要函数类型,不能被继承。(4)构造函数可以接受参数并能够重载。构造函数可以接受参数并能够重载。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院35CExample:CExample(int i)member1=i;member2=0;int main()CExample ex1;CExample ex2(1);CE

20、xample ex3(2,3);CExample:CExample()member1=0;member2=0;CExample:CExample(int x,int y)member1=x;member2=y;2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院36 (5)若程序没有为一个类定义任何构造函数,则编译器若程序没有为一个类定义任何构造函数,则编译器 生成一个不带参数的公有构造函数,这个构造函数生成一个不带参数的公有构造函数,这个构造函数 什么也不做,称为缺省构造函数。什么也不做,称为缺省构造函数。例:例:CExample:CExample3.3.2 析构函数析构

21、函数 析构函数与构造函数功能相反,也是析构函数与构造函数功能相反,也是类成员函数类成员函数,通常用于释放已分配的内存空间或完成对象被清除前的通常用于释放已分配的内存空间或完成对象被清除前的一些清理工作。一些清理工作。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院37 class CExample public:CExample();void Print();CExample();析构函数的特点析构函数的特点:1.与构造函数具有相同的名字,前面必须加上与构造函数具有相同的名字,前面必须加上“”符号。符号。2.析构函数没有函数类型,不能被继承。析构函数没有函数类型,不能被

22、继承。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院383.3.3 内联函数内联函数 在函数定义前加上一个在函数定义前加上一个inline前缀,该函数就被定义前缀,该函数就被定义成一个内联函数。成一个内联函数。3.析构函数析构函数不能带有参数不能带有参数,而且,而且不可以重载不可以重载。4.析构函数在析构函数在 结束时被自动调用。结束时被自动调用。对于内联函数,编译时在所有调用该函数的地方将对于内联函数,编译时在所有调用该函数的地方将装装入实际的函数代码入实际的函数代码。内联函数的声明必须出现在对它的每个调用之前。内联函数的声明必须出现在对它的每个调用之前。2022-

23、8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院393.3.5 对象与成员函数对象与成员函数成员函数的参数和返回值不仅可以是整型、字符型、成员函数的参数和返回值不仅可以是整型、字符型、指针类型等,也可以把对象作为参数和返回值。指针类型等,也可以把对象作为参数和返回值。class CPoint float x,y;public:CPoint(float a,float b);CPoint Add(CPoint A);2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院40CPoint :CPoint(float a,float b)x=a;y=b;CPoint

24、CPoint:Add(CPoint A)CPoint B;B.x=x+A.x;B.y=y+A.y;return B;2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院413.4 this指针指针 this指针是一个指针是一个隐含隐含于每个类的成员函数中的特殊指于每个类的成员函数中的特殊指针。针。this用于指向以该成员函数所属类定义的对象。用于指向以该成员函数所属类定义的对象。当某个对象调用成员函数时,成员函数的当某个对象调用成员函数时,成员函数的this指针便指针便指向该对象。因此,当指向该对象。因此,当不同的对象引用同一个成员函数不同的对象引用同一个成员函数时,编译器

25、就依据成员函数时,编译器就依据成员函数 this 指针指向的不同对象来指针指向的不同对象来确定引用哪一个对象的数据成员。确定引用哪一个对象的数据成员。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院42例:例:#include class A public:A()a=b=0;A(int i,int j)a=i;b=j;void copy(A&aa);void print()couta“,”bendl;private:int a,b;void A:copy(A&aa)if(this=&aa)return;*this=aa;void main()A a1,a2(3,4);a

26、1.copy(a2);a1.print();2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院433.5 const关键字关键字3.5.2 const 的特点及使用注意事项的特点及使用注意事项 3.5.1 声明语法声明语法 const 是一个类型修饰符,语法是:是一个类型修饰符,语法是:T const 其中,其中,T是一个是一个类型表达式类型表达式。const 与与 T 之间的关系之间的关系是是左结合左结合的。的。1.使用使用const 声明的对象不能被更新。声明的对象不能被更新。2.由于这种对象不能被更新,因此必须进行初始化。由于这种对象不能被更新,因此必须进行初始化。

27、int const a=2;a=1;/error2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院443.const 常被用于声明函数的形参。指针类型或引用类常被用于声明函数的形参。指针类型或引用类型的形参使函数可以更新调用者中的对象,但若函数型的形参使函数可以更新调用者中的对象,但若函数并不更新指针所指向的对象或引用所引用的对象,那并不更新指针所指向的对象或引用所引用的对象,那么最好将这样的参数使用么最好将这样的参数使用 const 关键字进行声明。关键字进行声明。4.当当T是一个简单的类型名时,习惯上写作是一个简单的类型名时,习惯上写作 const T。例:例:con

28、st int x=0;void Print()const;/类的常成员函数类的常成员函数 5.对于类中不更新对象的数据成员的成员函数,可以将对于类中不更新对象的数据成员的成员函数,可以将其使用其使用const进行声明。进行声明。当一个成员函数使用当一个成员函数使用const进行声明后,就表明这个进行声明后,就表明这个函数可以操作常对象。没有使用函数可以操作常对象。没有使用const关键字进行声明关键字进行声明的成员函数则不能操作常对象。的成员函数则不能操作常对象。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院456.由于由于const对象必须初始化且不能被更新,因此,

29、当对象必须初始化且不能被更新,因此,当类中声明了类中声明了const数据成员时,只能通过成员初始化列数据成员时,只能通过成员初始化列表来构造该数据成员。表来构造该数据成员。例:例:class CExample public:CExample(int x);private:const int a;CExample:CExample(int x):a(x);在类中声明静态的在类中声明静态的const数数据成员时,据成员时,class A private:static const int SIZE;const int A:SIZE =10;2022-8-8福州大学数学与计算机科学学院福州大学数学与计

30、算机科学学院463.6 友元函数友元函数3.6.1 定义定义 友元函数是一种特殊的函数,友元函数是一种特殊的函数,它不是类的成员函数它不是类的成员函数,但允许它访问类的私有类型数据和保护类型数据。但允许它访问类的私有类型数据和保护类型数据。3.6.2 声明方式声明方式class 类名称类名称/相关的类相关的类 type vars;public:friend 函数类型函数类型 函数名称函数名称();/声明友元声明友元 函数类型函数类型 函数名称函数名称()/定义友元定义友元 2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院473.6.3 特点特点1.友元可以是一个一般的函

31、数友元可以是一个一般的函数(友元函数友元函数),也可以是另,也可以是另一个类的成员函数一个类的成员函数(友元成员友元成员),还可以是整个的一个类,还可以是整个的一个类(友元类友元类,这时类中的所有成员函数都是友元函数,这时类中的所有成员函数都是友元函数)。2.友元函数须在私有成员可被它访问的类中声明,而函友元函数须在私有成员可被它访问的类中声明,而函数体则在类外声明。数体则在类外声明。3.友元函数虽然在类中声明,友元函数虽然在类中声明,但它不是该类的成员函数,但它不是该类的成员函数,而是独立于任何类的一般的外界函数,而是独立于任何类的一般的外界函数,它被允许访问该它被允许访问该类的所有对象的私

32、有成员。类的所有对象的私有成员。4.C+中使用友元是为了提高程序的运行效率。但为了中使用友元是为了提高程序的运行效率。但为了确保数据的完整性及数据封装与隐藏的原则,确保数据的完整性及数据封装与隐藏的原则,应尽可能应尽可能不使用或少使用友元函数。不使用或少使用友元函数。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院483.7 引用引用 引用是给对象取一个引用是给对象取一个别名别名,它引入了对象的一个,它引入了对象的一个同同义词义词。error3.7.1 定义定义 定义引用的关键字定义引用的关键字:T&例例:int i;int&j;int&j=i;j=i;j=6;注意注意

33、:(1)引用不产生对象的副本,而是对象的引用不产生对象的副本,而是对象的同义词同义词,它们表示它们表示同一个对象同一个对象。(2)定义引用时,必须定义引用时,必须马上对它进行初始化马上对它进行初始化,不能,不能定义完后再赋值。定义完后再赋值。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院49(3)对对象或对引用的任何操作都会影响到它们共同的对象。对对象或对引用的任何操作都会影响到它们共同的对象。3.7.2 引用的使用引用的使用引用参数引用参数引用可以用在需要改变实参变量的函数中;引用可以用在需要改变实参变量的函数中;#include void swap(int x,i

34、nt y)int temp;temp=x;x=y;y=temp;(4)引用一旦被初始化,就不能被改变,也不能更新引用,引用一旦被初始化,就不能被改变,也不能更新引用,使其标识另一个对象。使其标识另一个对象。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院50运行结果运行结果:a=1 b=2 a=1 b=2 main()int a=1,b=2;cout“a=”a“b=”b endl;swap(a,b);cout“a=”a“b=”b y?x:y;double max(double x,double y)return xy?x:y;template T max(T x,T y

35、)return xy?x:y;int i=max(1,2);double x=max(1.0,2.0);2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院523.9 运算符重载运算符重载为用户定义的数据类型重载运算符。为用户定义的数据类型重载运算符。bool Rectangle:operator=(const Rectangle&s)if(this=&s)return true;if(x1=s.x1)&(y1=s.y1)&(h=s.h)&(w=s.w)return true;else return false;经重载运算符经重载运算符 =后,即可用运算符后,即可用运算符

36、=来判来判定定2 2个个RectangleRectangle对象是否相同。对象是否相同。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院533.10 继承继承w通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。在C+语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。派生类的定义格式单继承的定义格式如下:class:;w多继承的定义

37、格式如下:wclass:,w;2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院54w派生类的三种继承方式w公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。w1.公有继承(public)w公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的。w2.私有继承(private)w私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。w3.保护继承(protected)w保护继承的特点是基类的所有公有成员和保护成员都成为

38、派生类的保护成员,并且只能被它的派生类成员函数或友元访问,基类的私有成员仍然是私有的。2022-8-8福州大学数学与计算机科学学院福州大学数学与计算机科学学院55w#includewusing namespace std;wclass Awwpublic:wvoid p1()coutAendl;wprivate:wvoid p2()coutBendl;wprotected:wvoid p3()coutCendl;w;wclass B:public Ab;wclass C:private Ac;wclass D:protected Ad;wint main()wb.A:p1();w/b.A:p2();w/b.A:p3();w/c.A:p1();w/c.A:p2();w/c.A:p3();w/d.A:p1();w/d.A:p2();w/d.A:p3();wreturn 0;w

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|