2022年面向对象程序设计复习 .pdf

上传人:H****o 文档编号:40338829 上传时间:2022-09-09 格式:PDF 页数:25 大小:215.69KB
返回 下载 相关 举报
2022年面向对象程序设计复习 .pdf_第1页
第1页 / 共25页
2022年面向对象程序设计复习 .pdf_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《2022年面向对象程序设计复习 .pdf》由会员分享,可在线阅读,更多相关《2022年面向对象程序设计复习 .pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、语法扩充1.1 选择题在 C+中用(D )能够实现将参数值带回。a)数组b)指针c)引用d)上述 ABC 都可考虑函数原型void test(int a,int b=7,char*ch=*),下面的函数调用中,属于不合法调用的是:(C)A)test(5)B)test(5,8)C)test(6,#)D)test(0,0,*);已知:int m=10;下列表示引用的方法中,正确的是:(C)A)int&Z;B)int&t=10;C)int&X=m;D)float&f=&m;下列不是函数重载所要求的条件是:(D)A)函数名相同B)参数个数不同C)参数类型不同D)函数返回值类型不同在 C+中执行以下4

2、条语句后输出rad 值为:(C)static int hot=200;int&rad=hot;hot=hot+100;coutradstr;当输入Microsoft Visual Studio 6.0!所得结果是str=(B)。A、Microsoft Visual Studio 6.0!B、Microsoft C、Microsoft Visual D、Microsoft Visual Studio 6.0.函数模板(C)。A、代表某一具体函数B、与模板函数是同一个函数C、与某一个具体的数据类型连用D、是模板函数实例化的结果在 C+中,关于下列设置参数默认值的描述中,正确的是(C)A、不允许设置

3、参数的默认值B、设置参数默认值只能在定义函数时设置C、设置参数默认值时,应该是先设置右边的再设置左边的D、设置参数默认值时,应该全部参数都设置下列表示引用的方法中,(A)是正确的。已知:k=1000;A、int&x=k;B、char&y;C、int&z=1000;D、float&t=&k;有如下模板定义:template T fun(T x,T y)return x*x+y*y;在下列对 fun 的调用中,错误的是:(C)A)fun(2,8)B)fun(2.0,8.2)C)fun(2.3,8)D)fun(,2?,?8?)通常情况下,函数模板中的类型参数个数不能是(A)A)0 个B)1 个C)2

4、 个D)3 个1.2 填空题1、假定有如下定义:int x;,若要将整型变量y 定义为变量x 的引用,则应使用的定义语句是_。具有相同函数名但具有不同参数表的函数称为。2、在进行函数调用时,将把参数的 _传递给值参数,把参数的 _传递给引用参数。3、执行完下列三条语句后,指针变量c 指向 _。Int a,b,*c=&a;int*&p=c;p=&b;4、假设有如下函数定义:void Fun(int x,int y=100);则语旬 Fun(5)语句 _等价。5、在一个 C+程序中,每个变量都必须遵循_的原则。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 25 页 -6、下面是一个

5、求数组元素之和的程序。主程序中定义并初始化了一个数组,然后计算该数组各元素之和,并输出结果。函数 TotalSum 计算数组元素之和。请完成下列程序。#include _ _;void main()int a5=2,3,6,8,10;_ _;Total=Totalsum(a,5);coutSum of array:Total静态成员函数没有(B)。A返回值B.this 指针C.指针参数D.返回类型在下列关键字中,用于说明类中公有成员的是(A)。Apublic;B private;C protected;Dfriend 不是构造函数的特征(D)。A构造函数的函数名与类名相同;B.构造函数可以重载

6、;名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 25 页 -C.构造函数可以设置缺省参数;D.构造函数必须指定类型说明。是析构函数的特征(A)。A一个类中只能定义一个析构函数;B.析构函数名与类名不同;C.析构函数的定义只能在类体内;D.析构函数可以有一个或多个参数。关于成员函数特征的下述描述中,(A)是错误的。A成员函数一定是内联函数;B.成员函数可以重载;C.成员函数可以设置参数的缺省值;D.成员函数可以是静态的。下述静态数据成员的特性中,(D)是错误的。A 说明静态数据成员时前边要加修饰符static;B 静态数据成员要在类体外进行初始化;C引用静态数据成员时,要在静态数

7、据成员名前加和作用域运算符;D静态数据成员不是所有对象所共用的。2.2 填空题1、在撤销类的对象时,C+程序将自动调用该对象的_函数。2、类中的构造函数是一个特殊的成员函数,它由类的对象_调用,它的作用是_。3、对类中的成员函数和属性的访问是通过_、_和_这 3 个关键字来控制的。4、_运算符删除【3.25】题中的运算符所动态分配的内存空间。5、假定用户没有给一个名为MyClass 的类定义析构函数,则系统为其定义的默认析构函数形式为 _。6、类中构造函数有_ _个,析构函数有 _个。7、类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的_ _,共同行为被描述为类中的_。8、

8、若要把类 FriendClass 定义为类MyClass 的友元类,则应在类MyClass 的定义中加入语句_。9、在 C 语言中,编程的单位是 _:在 C+语言中,编程的单位是 _ _。10、在结构定义中,数据和成员函数默认权限是_。在关定义中,数据和成员函数默认权限是 _ _。11、在下面程序的横线处填上适当的语句,使类型该程序执行结果为10。#include class MyClass pub1ic:_/为 x 置值_/取 x 值private:int x;void main()Myclass my(10);名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 25 页 -Cou

9、tmy.GetNum()end;12、完成下面的类定义。Class MyClass public:MyClass()x=0;_ _int GetNum(_ _my);private:int x;int GetNum(_ _my)_return my.x;13、_运算符对指定类型对象动态分配内存并返回该类型的_。14、下面的类中定义了一个关于星期的枚举类型,请完成下面的程序。Class MyClass public:enum WeekSun,Mon,Tue,Wed,Thu,Fri,Sat;Week week;void fun(MyClass&my)_ _=_ _;_/将对象 my 的 week

10、赋值为所定义的枚举类型/值为 3 的枚举量 15、若要把函数void FriendFunction()定义为类MyClass 的友元函数,则应在类MyClass 的定义中加入语句 _。16、类的具体表现是通过定义_来操作的。17、在定义类的对象时,C+程序将自动调用该对象的_函数初始化对象自身。18、一般情况下,按照面向对象的要求,把类中的数据成员(属性)定义为 _权限,而把成员函数(方法)定义为 _权限。19、在类中定义和实现的函数称为_。20、非成员函数应声明为类的_才能访问这个类的private 成员。2.3 简答题A、类的含义B、构造函数的特点C、拷贝构造函数的调用D、析构函数的定义及

11、其特点名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 25 页 -E、静态成员的分类及各自的特点继承与派生3.1 选择题.在 C+中,类与类之间的继承关系具有(C )A)自反性 B)对称性 C)传递性 D)反对称性.在公有继承的情况下,基类的成员(私有的除外)在派生类中的访问权限(B )A)受限制B)保持不变C)受保护D)不受保护.按解释中的要求在下列程序划线处填入的正确语句是:(C )#include class Base public:void fun()coutBase:funendl;class Derived:public Base public:void fun()/

12、在此空格处调用基类的函数fun()coutDerived:funfun();.在保护继承的情况下,基类的成员(私有的除外)在派生类中的访问权限(C )A)受限制B)保持不变C)受保护D)不受保护.下面描述中,表达错误的是:(B )A)公有继承时,基类中的public成员在派生类中仍是public的B)公有继承时,基类中的private成员在派生类中仍是private的C)公有继承时,基类中的protected成员在派生类中仍是protected的名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 25 页 -D)私有继承时,基类中的public成员在派生类中是private的.下列虚

13、基类的声明中,正确的是:(B )A)class virtual B:public A B)class B:virtual public A C)class B:public A virtual D)virtual class B:public A.C+设置虚基类的目的是(A )A)消除二义性B)简化程序C)提高运行效率D)减少目标代码class X int a;public:X(int x=0)a=x;class Y:public X int b;public:Y(int x=0,int y=0):X(y)b=x;下列语句组中出现语法错误的是(D)A.X*pa=new Y(1,2);B.X a

14、1=Y(1,3);C.Y b1(2,3);X&a3=b1;D.X a4(10);Y b2=a4;class Base public:int i;Base(int t):i(t);class Derived:protected Base Base b;int j;public:Derived(int t);在构造函数Derived 的下列定义中,正确的是(B)A.Derived:Derived(int t):b(t),j(t)B.Derived:Derived(int t):b(t),Base(t),j(t)名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 25 页 -C.Deri

15、ved:Derived(int t):Base(t),j(t)D.Derived:Derived(int t):i(t),b(t),j(t)在哪种派生方式中,派生类可以访问基类中的protected成员(B )A)public和 private B)public、protected和 private C)protected和 private D)仅 protected 在 C+中,类与类之间的继承关系具有(C)A)自反性B)对称性C)传递性D)反对称性下列关于类的继承描述中,(A)是错误的A)派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数B)派生类也是基类,但基类不一定具有派生类

16、的全部属性和方法C)继承描述类的层次关系,派生类可以具有与基类相同的属性和方法D)一个基类可以有多个派生类,一个派生类可以有多个基类.当一个派生类仅有protected 继承一个基类时,基类中的所有公有成员成为派生类的(C)A)public 成员B)private 成员C)protected 成员D)友元当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的(B)A)public 成员B)private 成员C)protected 成员D)友元不论派生类以何种方法继承基类,都不能使用基类的(B)A)public 成员B)private 成员C)protected 成员D)p

17、ublic 成员和 protected 成员在创建派生类对象时,构造函数的执行顺序是(D)A)对象成员构造函数、基类构造函数、派生类本身的构造函数B)派生类本身的构造函数、基类构造函数、对象成员构造函数C)基类构造函数、派生类本身的构造函数、对象成员构造函数D)基类构造函数、对象成员构造函数、派生类本身的构造函数下列虚基类的声明中,正确的是(D)。A)class virtual B:public A B)virtual class B:public A C)class B:public A virtual D)class B:virtual public A 下面叙述错误的是(A)。A)基类的

18、 protected 成员在派生类中仍然是protected 的B)基类的 protected 成员在 public 派生类中仍然是protected 的C)基类的 protected 成员在 private 派生类中是private 的D)基类的 protected 成员不能被派生类的对象访问下列说法中错误的是(A)。A)保护继承时基类中的public 成员在派生类中仍是public 的B)公有继承时基类中的private 成员在派生类中仍是private 的C)私有继承时基类中的public 成员在派生类中是private 的D)保护继承时基类中的public 成员在派生类中是protec

19、ted 的关于多继承二义性的描述中,错误的是(B)。A)一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性B)解决二义性的最常用的方法是对成员名的限定法名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 25 页 -C)基类和派生类中同时出现的同名函数,也存在二义性问题D)一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,可能出现二义性下面叙述错误的是(C)。A)派生类可以使用private 派生B)对基类成员的访问必须是无二义性的C)基类成员的访问能力在派生类中维持不变D)赋值兼容规则也适用于多继承的组合派生类

20、的构造函数的成员初始化列表中,不能包含(C)。A)基类的构造函数B)派生类中子对象的初始化C)基类中子对象的初始化D)派生类中一般数据成员的初始化下面(B)的叙述不符合赋值兼容规则。A)派生类的对象可以赋值给基类的对象B)基类的对象可以赋值给派生类的对象C)派生类的对象可以初始化基类的引用D)派生类的对象的地址可以赋值给指向基类的指针.下列虚基类的声明中,正确的是:(B )A)class virtual B:public A B)class B:virtual public A C)class B:public A virtual D)virtual class B:public A.C+设置

21、虚基类的目的是(A )A)消除二义性B)简化程序C)提高运行效率D)减少目标代码3.2 填空题1、垂直访问时,保护成员的访问控制权限与_成员相同。2、利用继承能够实现_。这种实现缩短了程序的开发时间,促使开发人员复用已经测试和调试好的高质量软件。3、派生类对基类的继承有三种方式:_、_ _ 和_。4、多继承情况下,派生类的构造函数的执行顺序取决于_派生类时所指定的各基类的顺序。5、C+提供的 _机制允许一个派生类继承多个基类,即使这些基类是相互无关的。6、派生类可以调用其_中不具备的数据和操作。7、对基类数据成员的初始化必须在派生类构造函数中的_处执行。8、如果类 Alpha 继承了类Beta

22、,则类 Alpha 称为 _类,类 Beta 称为 _类。9、己知下面的程序框架,按注释中的提示补充细节。#include class planet protected:名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 25 页 -double distance;_/行星距太阳的距离int revolve;_/行星的公转周期public:planet(double d,int r)distance=d;revolve=r;class earth:public planet double circumference;/地球绕太阳公转的轨道周长public:/定义构造函数earth(

23、double d,int r),并计算地球绕太阳公转的轨道周长。/假定:circumnference=2*d*3.1416 _/定义 show()函数显示所有信息_;void main()earth ob(9300000,365);ob.show();10、设置虚基类的目的是_,可通过 _标识虚基类。11、若多继承时,多个基类中拥有一个同名的成员,则_用调整访问权限确定对该成员的访问。12、根据基类的定义和测试程序,完成下面派生类的定义。Class Point public:Point(int I=0,int j=0)X=I;Y=j;void Move(int xOff,int yOff)X+

24、=xOff;Y+=yOff;int GetX()return X;int GetY()return Y;private:int X,Y;class Rectangle:private Point public:Rectangle(int x,int y,int W,int h)_ _ _ void Move(int xOff,int yOff)_ _ int GetX()_ _ 名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 25 页 -int GetY()_ _ int GetW()_ _ int GetH()_ _ private:int W,H;#include#incl

25、ude void main()Rectangle rect(1,2,3,4);rect.Move(5,6);cout“The data of rect(X,Y,W,H):(“rect.GetX()“,”rect.GetY()“,”rect.GetW()“,”rect.GetH()“)”endl;13、多继承可以视为是_的扩展,派生类及其基类可用一个_表示。14、在划线处填上适当的语句,完成下列程序。#include class Point public:point(double a,double b,double c)_ _ double Getx()return X;double Gety(

26、)return Y;double Getz()return Z;private:_ protected:_;class Line:_Point public:Line(double a,double b,double c,double d)_ _ _ void show()coutGetx()endl;coutGety()“.endl;coutGetz()“Zendl;coutKendl;private:double k;名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 25 页 -void main()Line obj(1.2,3.4,5.6,7.8);obj.show();1

27、5、类继承中,缺省的继承方式是_。16、构造函数 _被继承,析构函数_被继承。17、当用 protected 继承从基类派生个类时,基类的public 成员成为派生类的_成员,protected 成员成为派生类的_成员。18、_类的对象可作为_类的对象处理。19、指向基类的对象的指针变量也可以指向_的对象。20、类之间的”有”关系代表_,”是”关系代表_。3.3 简答题A、派生类的定义及其特点B、单继承和多继承的概念及其关系C、继承方式的种类及其各自的特点D、在继承中构造函数和析构函数的调用规则F、赋值兼容原则类的多态性4.1 选择题.实现运行时的多态性采用(D)A)重载函数B)构造函数C)析

28、构函数D)虚函数.在派生类中重新定义虚函数时,必须在下列哪方面与基类保持一致。(A)A)参数类型B)参数名字C)操作内容D)赋值.当一个类的某个函数被说明为virtual时,在该类的所有派生类中的同原型函数(A )A)都是虚函数 B)只有被重新说明时才是虚函数C)都不是虚函数 D)只有被重新说明为virtual时才是虚函数.通过下述哪一项调用虚函数时,采用动态联编。(A)A)对象指针B)对象名C)成员名限定D)派生类名下面描述中,正确的是(B D)(两个答案)名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 25 页 -A)虚函数是没有实现的函数B)纯虚函数的实现在派生类中C)抽

29、象类是没有纯虚函数的类D)抽象类指针可以指向不同的派生类对象若一个类中含有纯虚函数,则该类称为(D)A)基类B)纯基类C)派生类D)抽象类假设 A 为抽象类,下列声明(B)是正确的A)A fun(int);B)A*p;C)int fun(A);D)A Obj;在 C+中,要实现动态联编,必须使用(D)调用虚函数A)类名B)派生类指针C)对象名D)基类指针下列函数中,可以作为虚函数的是(C D)(两个答案)A)普通函数B)构造函数C)成员函数D)析构函数在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值(B)A)不同B)相同C)相容D)部分相同下面函数原型

30、声明中,(C)声明了fun 为普通虚函数A)void fun()=0;B)virtual void fun()=0;C)virtual void fun();D)virtual void fun();在下面四个选项中,(A)是用来声明虚函数的。A)virtual B)public C)using D)false 在下面程序中,A、B、C、D 四句编译时出现错误的是(C)。Class A_/A public:_/B A()func();_/C virtual void func()=0;_/D;实现运行时的多态性要使用(D)。A)重载函数B)构造函数C)析构函数D)虚函数对虚函数的调用(D)。A

31、)一定使用动态联编B)必须使用动态联编C)一定使用静态联编D)不一定使用动态联编在派生类中重新定义虚函数时,除了(D)方面,其他方面都必须与基类中相应的虚函数保持一致。A)参数个数B)参数类型C)函数名称D)函数体名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 25 页 -关于虚函数的描述中,正确的是(D)。A)虚函数是一个静态成员函数B)虚函数是一个非成员函数C)虚函数既可以在函数说明时定义,也可以在函数实现时定义D)派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型下列描述中,(D)是抽象类的特性。A)可以说明虚函数B)可以进行构造函数重载C)可以定义友元函数D)不

32、能说明其对象关于纯虚函数和抽象类的描述中,错误的是(C)。A)纯虚函数是一种特殊的虚函数,它没有具体的实现B)抽象类是指具有纯虚函数的类C)一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类D)抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出以下(C)成员函数表示纯虚函数。A)virtual int vf(int);B)void vf(int)=0;C)virtual void vf()=0;D)virtual void vf(int)下列关于动态联编的描述中,错误的是(D)。A)动态联编是以虚函数为基础的B)动态联编是在运行时确定所调用的函数代码的C)动态联编调用函数操作是指向对

33、象的指针或对象引用D)动态联编是在编译时确定操作函数的如果一个类至少有一个纯虚函数,那么就称该类为(A)。A)抽象类B)虚基类C)派生类D)以上都不对下面的描述中,正确的是(A)。A)virtual 可以用来声明虚函数B)含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类C)即使基类的构造函数没有参数,派生类也必须显示调用其构造函数D)静态数据成员可以通过成员初始化列表来初始化4.2 填空题1、在析构函数中调用虚函数时,采用 _联编。2、动态联编是在_的支持下实现的,它通过 _来调用该函数操作。3、动态联编中直到_时才能确定调用哪个函数:而耐静态橄联编刷则u 是脏在 _时进行的。4、C+中

34、_虚构造函数,但 _虚析构函数。5、静态联编所支持的多态性称为_多态性,动态联编所支持的多态性则称为_名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 25 页 -_多态性,动态多态性由_来支持。6、在类定义中,将_置于虚函数的函数原型的末尾可以将该函数声明为纯虚函数。7、下列程序的运行结果如下:Bases cons.Deriveds cons.Deriveds des.Bases des.根据结果将程序补充完整。#incude class Base public:Base()coutBases cons.endl;_coutBases des.endl;class Derive

35、d:public Base public:Derived()coutDeriveds cons.endl;Derived()coutDeriveds des.endl;void main()Base*Ptr=_ delete ptr;8、抽象类不能 _,但可以 _作为参数类型,函数返回类型或显式转换类型。9、根据不同的输出结果,在函数 Tone中填入正确的语句。#include class Instrument public:virtual void Print()constcoutInstrument:Printendl;class Piano:public Instument public

36、:void Print()constcoutPiano:Printendl;class Guitar:public InstruIment pub1ic:void Print()constcoutGuiur:Printendl;名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 25 页 -void Tone(_)_ void main()Guitar g;Tone(g);Piano p;Tone(p);(1)输出结果为:Instrument:Print Instrument:Print(2)输出结果为:Guitar:Print Piano:Print 10、对虚函数使用对象指针或

37、引用调用,系统使用 _联编:使用对象调用时,系统使用_联编。11、将下列程序补充完整。#include class convert public:convert(double I)va11=I;_ protected:double val1;double va12:;/liters to gallons class l_to_g:public convert public:_ void compute()va12=va11/3.7854;coutva11liters is val2gdIons.endl;/Fahrenheit to Celsius 名师资料总结-精品资料欢迎下载-名师精心整理

38、-第 19 页,共 25 页 -class f_to_c:public convert _;void fun(_ _)pute();void main()l_to_g lgobj(4);f_to_c fcobj(70);fun(lgobj);fun(fcobj);12、下列程序的运行结果如下:Derive1s Print()called.Derive2s Print()caIIed.根据结果将程序补充完整。#include class Base public:Base(int I)b=I;_ protected:int b;class Derive1:public Base public:_

39、void Print()coutDerive1s Print()called.Print();名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 25 页 -;void main()_ fun(d1);fun(d2);13、在一个成员函数内调用一个虚函数时,对该虚函数的调用进行_联编。14、带有 _的类称为抽象类,它只能作为 _来使用。4.3 简答题A、成员函数重载与虚函数的区别C、纯虚函数和抽象类的定义D、抽象类的特点运算符重载5.1 选择题友元运算符objobj2 被 C+编译器解释为(A)。A)operator(obj1,obj2)B)(obj1,obj2)C)obj2.op

40、erator(obj1)D)obj1.oprator(obj2)下面对 C+运算符的正确的描述是(D)。A)只有类成员运算符B)只有友元运算符C)只有非成员和非友元运算符D)上述三者都有下列关于 C+运算符函数的返回类型的描述中,错误的是(C)。A)可以是类类型B)可以是 int 类型C)可以是 void 类型D)可以是 float 类型重载赋值操作符时,应声明为(C)函数。A)友元B)虚C)成员D)多态名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 25 页 -在一个类中可以对一个操作符进行(D)重载。A)1 种B)2 种以下C)3 种以下D)多种下列关于运算符重载的描述中,

41、正确的是(D)。A)运算符重载可以改变运算符的操作数的个数B)运算符重载可以改变优先级C)运算符重载可以改变结合性D)运算符重载不可以改变语法结构下列运算符中,(C)运算符在C+中不能重载。A)=B)()C):D)delete 下列运算符中,(A)运算符在C+中不能重载。A?:B)C)new D)&在重载运算符函数时,下面(D)运算符必须重载为类成员函数形式。A)+B)-C)+D)-下列运算符不能用友元函数重载的是(B)。A)+B)=C)*D)C):?:new delete D)+-?:sizeof 5.2 填空题1、要在类的对象上使用运算符,除了运算符_ _和_以外,其他的运算符都必须被重载

42、。2、在 C+中,只能重载为类的成员函数的运算符是_ _、_、_、_。3、运算符()与运算符 必须重载为 _。4、利用成员函数对二元运算符重载,其左操作数为 _,右操作数为 _。5、下列程序定义了一实部为mal,虚部为 imag 的复数类complex,并在类中重载了复数的+、-操作。请将下列程序补充完整。Class Complex public:Complex(double r=0.0,double I=0.O)_ _operator+(Complex);_operator-(Complex,Complex);private:double real,imag;_operator+(Compl

43、ex c)return Complex(_ _);_operator-(Complex c1,Complex c2)return Complex(_ _);6、单目运算符作为类成员函数重载时_的参数;双目运算符作为_重载时需声明其右操作数,作为 _重载时需声明全部操作数。7、重载运算符函数的函数名th 关键字 _引 th。8、重载的运算符仍然保持其原来的优先级、_和_。9、为满足运算符+的可交换性,必须将其重载为_。10、C+中不能重载的运算符有_ _、_、_、_和 _。11、设 a 和 b 是两个整型变量,a+b 表示这两个变量的和:设 c 和 d 为浮点型变量,c+d 也表示这两个变量的和

44、。这里的运算符+具有不同的用途,这是 _的例子。名师资料总结-精品资料欢迎下载-名师精心整理-第 23 页,共 25 页 -5.3 简答题A、友元的特点B、运算符重载的含义C、运算符重载的限制异常处理6.1 选择题下列关于异常的叙述错误的是(A)。A编译错属于异常,可以抛出B运行错属于异常C硬件故障也可当异常抛出D只要是编程者认为是异常的都可当异常抛出下列叙述错误的是()。Athrow 语句须书写在try 语句块中Bthrow 可以产生任何类型的异常C一个程序中可以有try 语句而没有throw 语句Dthrow 语句抛出的异常可以不被捕获下列叙述错误的是(A)。Acatch(int)语句可捕

45、获所有类型的异常B一个 try 语句可以有多个catch 语句C catch 语句组的顺序可以随意D程序中try 语句与 catch 语句是一个整体,缺一不可下列程序运行结果为(A)。#include using namespace std;class S public:S()cout”S”t”;char fun0()S s1;throw(,T?);return,0?;void main()try coutfun0()”t”;catch(char c)coutc”t”;名师资料总结-精品资料欢迎下载-名师精心整理-第 24 页,共 25 页 -AS T BO S T CO T DT 6.2 填

46、空题1)C+程序将可能发生异常的程序块放在try 中,紧跟其后可放置若干个对应的catch,在前面所说的块中或块所调用的函数中应该有对应的throw,由它在不正常时抛出异常,如与某一条catch 类型相匹配,则执行该语句。该语句执行完之后,如未退出程序,则执行catch 后续语句。如没有匹配的语句,则交给C+标准库中的termanite处理。2)throw 表达式的行为有些像函数的函数调用,而 catch 子句则有些像函数的函数定义。函数的调用和异常处理的主要区别在于:建立函数调用所需的信息在编译时已经获得,而异常处理机制要求运行时的支撑。对于函数,编译器知道在哪个调用点上函数被真正调用;而对于异常处理,异常是随机 发生的,并沿 调用链逆向查找异常处理子句,这与运行时的多态是不一样的。6.3 简答题A、异常处理语法格式B、常成员函数的语法定义及其特点名师资料总结-精品资料欢迎下载-名师精心整理-第 25 页,共 25 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁