第8章习题答案解析.docx
- 文档编号:2316013
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:14
- 大小:81.44KB
第8章习题答案解析.docx
《第8章习题答案解析.docx》由会员分享,可在线阅读,更多相关《第8章习题答案解析.docx(14页珍藏版)》请在冰豆网上搜索。
第8章习题答案解析
第八章多态
1.单选题
(2).下列函数中,不能重载运算符的函数是(b)。
(A)类名(B)派生类指针(C)对象名(D)基类指针
(6).下列函数中,不能说明为虚函数的是(C)u
(A)私有成员函数(B)公有成员函数(C)构造函数(D)析构函数
(7).在派生类中,重载一个虚函数时,要求函数需、参数的个数、参数的类型、参数的
顺序和函数的返回值(A)o
(8).C++中•根据(D)识别类层次中不同类定义的虚函数版本。
(10).下而函数原型中,(B)声明了fbii为纯虚函数。
(A)VOIdfun()=O;(B)VirtUalVOldfun()=O;
(C)VIrtUalVOidfun();(D)VlrtUalVoldftιn(){};
(11).若一个类中含有纯虚函数,则该类称为(C)。
(A)基类(B)纯基类(C)抽象类(D)派生类
(12)・假设AClaSS为抽象类,下列正确的说明语句是(B)。
(A)AClaSSfiuι(Int);(B)ACIaSS*P;
(C)mtftιn(ACIaSS);(D)AClaSSObJ;
2.在C++中,使用类体系依靠什么机制实现程序运行时的多态?
【解答】
在C++中,基类指针可以指向派生类对象,以及基类中拥有虚函数,是支持多态性的前提。
程序通过用同一个基类指针访问不同派生类的虚函数重载版本实现程序运行时的多态。
C++的虚特性负责自动地在程序运行时把基类指针的关联类型转换成当前指向对象的派生类类型。
另外,抽象类机制提供了软件抽象和可扩展性的手段,实现运行时的多态性。
3.如果一个类的虚函数被声明为私有成员函数,会有语法错误吗?
当它作为基类时,可以在应用类体系时实现动态联编吗?
请你验证一下。
【解答】
没有语法错误。
但在应用类体系时无法实现动态编联和多态。
因为私有成员函数只在类内可见,在类外无法调用,无法在类外通过基类指针实现多态。
程序略。
4.虚函数和纯虚函数的区别是什么?
【解答】
虚函数定义时冠以关键字VlrtUaI,本身有实现代码,作用是引导基类指针根据指向对象调用类体系中不同重载版本函数。
纯虚函数是指在说明时代码“为0”的虚函数,即纯虚函数本身并没有实现代码,必须通过它的派生类定义实现版本。
5.阅读下列程序,写出运行结果。
#include
USingnamespacestd;
ClaSST
{PUbliC:
TO{a=0;b=0;C=0;}
T(inti,intj,intk)
{a=i;b=j;C=k;}
VOidget(int&i,int&j,int&k)
{i=a;j=b;k=c;}
TOPeratOr*(TObj);
private:
inta,b,c;
};
TT:
!
operator*(TObj)
{Ttempobj;
tempobj・a=a*Obj・a;
tempObj・b=b*Obj・b;
tempObj・c=c*Obj.c;
returntempobj;
}
intmainO
{Tobjl(1,2,3)fobj2(5,5,5)fobj3;
inta,b,c;
obj3=ObjI*Obj2;
obj3・get(a,b,c);
cout(objl*obj2):
<<"a="< cout<<,z(obj2*obj3): "
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题 答案 解析