面向对象程序设计打印Word文档下载推荐.docx
- 文档编号:18335412
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:41
- 大小:36.87KB
面向对象程序设计打印Word文档下载推荐.docx
《面向对象程序设计打印Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计打印Word文档下载推荐.docx(41页珍藏版)》请在冰豆网上搜索。
34.对象与对象之间通过消息进行通讯。
35.C++中用于定义模板的关键字是template。
36.在C++的类中包含两种成员,分别是数据成员和成员函数。
37.所谓函数模版,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。
38.C++为提高函数调用的效率,允许在编译时将所调用函数的代码嵌入到主函数中,这种嵌入到主函数的函数称为内置函数。
39.类中有两种特殊的成员函数,分别是构造函数和析构函数。
40.若要定义指向Time类对象t1的常指针ptr,其定义语句为:
Time*constptr=&
t1。
41.如果函数的形参为类的对象,在调用函数时需要将实参对象完整地传递给形参对象,此时系统要调用复制构造函数来实现。
42.如果需要在同类的多个对象之间实现数据共享,但不用全局变量,可以用静态成员变量。
43.在C++中,要访问类中的私有成员,可以使用成员函数和友元函数。
44.C++中,有四个运算符必须重载为类的成员函数,而不能重载为友元函数,这四个运算符分别是:
=,[],(),->
45.若要实现两个复数类对象相加运算,并且满足交换律,要将“+”重载为类的友元函数。
46.面向对象技术强调软件的可重用性,C++语言提供了类的继承机制,解决了软件重用问题。
47.C++中允许一个派生类同时继承多个基类,这种行为称为多重继承。
48.声明虚基类命令的的一般形式为class派生类名:
virtual继承方式基类名。
49.只有公用继承才是基类真正的子类型。
50.动态多态性是在程序运行过程中才动态地确定操作所针对的对象,又称为运行时的多态性。
51.虚函数一定是类的成员函数。
52.静态成员函数没有this指针。
53.类中成员默认的访问属性是private。
54.用关键字inline声明的函数称为内置函数。
55.若将两个复数相加运算符“+”重载为类complex的成员函数,且函数的返回值为当前类的对象,其函数的原型声明语句为
complexoperator+(complex&
)。
56.若用op代表C++中任意一个允许重载的运算符,其重载函数名为operatorop。
57.C++中的模板分为类模板和函数模板。
58.具有封装性、继承性和多态性特点的程序设计称为面向对象的程序设计。
59.用已有对象复制一个新对象时要调用复制构造函数。
60.在基类中将show(无参数)声明为返回整型数据的纯虚函数的语句格式为:
virtualintshow()=0。
61.在派生类中,对基类的继承方式可以有public、private和protected。
62.将双目运算符重载为某类的成员函数时,该成员函数的左操作数为当前对象(或*this),右操作数为函数参数。
64.若要访问类中的私有成员,除了可以利用成员函数外,还可以采用的友元函数的方式。
65.定义静态成员函数的目的是为了访问类中的静态数据成员。
66.要实现运行时的多态性要使用虚函数和继承。
67.派生类的成员来自两个途径,一种是派生类中定义的成员,另一种从基类继承来的成员。
68.构造函数是一种特殊的成员函数,其作用是对类的数据成员进行初始化并执行对象的其他内部管理操作。
69.在类中定义和实现的函数称为成员函数。
70.const成员函数只能引用本类中的数据成员,而不以修改数据成员。
71.如果一个类中至少有一个纯虚函数,那么该类被称为抽象类。
72.C++中用static声明的对象称为静态对象。
73.若有类名为sample,则其复制构造函数的原型声明语句为sample(constsample&
二、选择题
1.设int×
=10,×
+=3+×
%(-3),则×
=______C___。
A.15B.11C.14D.12
2.下列运算符,不能重载为友元函数的是_______D________。
A.<
、>
、<
=、>
=B.+、-、++、--C.+=、-=、*=、/=D.=、()、[]、->
3.在C++中,要实现动态联编,必须使用______B_______调用虚函数
A.派生类指针B.基类指针C.对象名D.类名
4.若运算符“>
”被重载为类的成员函数,则表达式obj1>
obj2被C++编译器解释为____A_____。
A.obj1.operator>
(obj2)B.obj2.operator>
(obj1)
C.operator>
()D.>
(obj1,obj2)
5.对于语句cout<
×
endl。
中的各个组成部分,下列叙述中错误的是_____B______。
A.“cout”是一个输出流对象B.“<
”称作流提取运算符
C.“×
”是一个变量D.“endl”的作用是输出回车换行
6.在下列函数原型中,可以作为类AA构造函数的是_____B__________。
A.intAA()。
B.AA(int)。
C.AA(int)const。
D.voidAA(int)。
7.函数调用语句fun(a+b,3,ma×
(n-1,b))。
中,实参的个数为_______D______
A.4B.6C.5D.3
8.有关虚函数的说法不正确的是______B_________。
A.构造函数不能是虚函数B.静态成员函数可以是虚函数
C.只有类的成员函数才能说明为虚函数D.析构函数可以是虚函数
9.逗号表达式a=4,b=6,a--,b--,a+b的值为______B_________。
A.9B.8C.10D.6
10.对于类中定义的成员,其隐含访问权限为______B________
A.publicB.privateC.staticD.protected
11.设置虚基类的目的是____C_______。
A.简化程序B.提高运行效率C.消除二义性D.减少目标代码
12.定义函数模板使用的关键字是_____A______。
A.templateB.inlineC.classD.operator
13.在intb[][3]={{1},{3,2},{4,5,6},{0}}。
中b[2][2]的值是___C____。
A.0B.5C.6D.2
14.友元的作用之一是____B______。
A.增加成员函数的种类B.提高程序的运行效率
C.实现数据的隐藏性D.加强类的封装性
15.下列表示引用的方法中,_____C_____是正确的。
已知:
intm=10。
A.int&
z。
B.int&
y=10。
C.int&
=m。
D.float&
t=&
m。
16.通过指向对象的指针变量取成员的运算符是____C_____。
A.>
>
B.·
C.->
D.<
17.已知类A中一个成员函数说明如下:
Voidset(A&
a)。
其中,A&
a的含义是_____C____。
A.指向类A的指针为a
B.将a的地址值赋给变量set
C.a是类A的对象引用,用来作为函数set()的形参
D.变量A与a按位相与作为函数set()的参数
18.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化次数____B_____。
A.与虚基类下面的派生类个数有关B.一次C.二次D.多次
19.下列函数中,_____D____不能重载。
A.成员函数B.非成员函数C.构造函数D.析构函数
20.关于动态联编的下列描述中,____A_____是错误的。
A.动态联编是在编译时确定操作函数的
B.动态联编是以虚函数为基础的
C.动态联编是在运行时确定所调用的函数代码的
D.动态联编调用函数操作是用指向对象的指针或对象引用
21.下列运算符中,_____D____运算符不能重载。
A.&
&
B.newC.[]D.:
:
22.关于虚函数的描述中,___A______是正确的。
A.函数基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数
B.虚函数是一个非成员函数
C.虚函数是一个static类型的成员
D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型
23.下面关于对象的描述中,错误的是___D______。
A.对象之间的信息传递是通过消息进行的B.对象是类的实例
C.一个类可以定义多个对象D.对象是类的别名
24.下述静态数据成员的特性中,____C_____是错误的。
A.说明静态数据成员时前边要加修饰符static
B.引用静态数据成员时,要在静态数据成员名前加<
类名>
和作用域运算符
C.静态数据成员不是所有对象所共用的
D.静态数据成员要在类体外进行初始化
25.有关类的说法中,不正确的是____D_____。
A.类是一种用户定义的数据类型
B.类中的成员函数能够存取类中的私有数据
C.在类中,如果不作特别说明,所有的成员函数均为私有类型
D.在类中,如果不作特别说明,所有的数据成员均为公有类型
26.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的__C_。
A.public成员B.protected成员C.private成员D.友元
27.有如下类声明:
classsample{public:
intmem。
}。
则sample类的成员mem是____B_____
A.公有成员函数B.公有数据成员C.私有数据成员D.私有成员函数
28.在C++中,关于设置参数的默认值的描述中,正确的是____A____。
A.设置参数默认值时,应该是先设置右边的再设置左边的
B.设置参数默认值只能在定义函数时设置
C.设置参数默认值时,应该全部参数都设置
D.不允许设置参数的默认值
29.函数模板的使用,实际上是将函数模板实例化成一个具体的____B____。
A.类B.函数C.对象D.模板类
30.在多重继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则____A____。
A.完全相同B.完全不同C.部分相同,部分不同D.以上都不对
31.下面关于对象概念的描述中,____C____是错误的。
A.对象是一个状态和操作(或方法)的封装体
B.对象代表着正在创建的系统中的一个实体
C.对象就是C语言中的结构体变量
D.对象之间的信息传递是通过消息进行的
32.继承机制的作用是_____A_____
A.定义新类B.数据封装C.数据抽象D.信息隐藏
33.有关析构函数的说法不正确的是____A_____
A.析构函数不能是虚函数B.析构函数无任何函数类型
C.析构函数没有形参D.析构函数有且只有一个
34.友元的作用之一是____C______
A.加强类的封装性B.实现数据的隐藏性
C.提高程序的运行效率D.增加成员函数的种类
35.通常拷贝构造函数的参数是____B______。
A.本类对象名B.本类对象的引用名C.本类对象的成员名D.本类对象的指针名
36.如果在基类中将show声明为不带返回值的纯虚函数,正确的写法是_____C___。
A.virtualshow()=0。
B.virtualvoidshow()。
C.virtualvoidshow()=0。
D.voidshow=0virtual。
37.下面关于友元的描述中,错误的是___A______。
A.类与类之间的友元关系可以继承
B.一个类的友元类中的成员函数都是这个类的友元函数
C.友元函数可以访问该类的私有数据成员
D.友元可以提高程序的运行效率
38.在C++中,_____B____运算符不能重载。
A.+B.sizeofC.-D.<
=
39.下列关于运算符重载的描述中,____A____是正确的。
A.运算符重载不可以改变语法结构B.运算符重载可以改变结合性
C.运算符重载可以改变优先级D.运算符重载可以改变操作数的个数
40.当一个派生类保护继承一个基类时,基类中的所有公有成员和保护成员成为派生类的__B_。
A.private成员B.protected成员C.public成员D.友元
41.在声明类时,下面的说法正确的是____B____。
A.可以在类的声明中给数据成员赋初值
B.private,public,protected可以按任意顺序出现
C.数据成员的数据类型可以是register
D.没有用private,public,protected定义的数据成员是公有成员
42.有如下类声明:
classFoo{intbar。
则Foo类的成员bar是____A_____
A.私有数据成员B.私有成员函数C.公有数据成员D.公有成员函数
43.设置虚基类的目的是____B____。
A.简化程序B.消除二义性C.减少目标代码D.提高运行效率
44.对虚函数的调用_____A_____。
A.不一定使用动态联编B.必须使用动态联编
C.一定使用动态联编D.一定使用静态联编
45.关于成员函数特征的下述描述中,____B___是错误的。
A.成员函数可以是静态的B.成员函数一定是内置函数
C.成员函数可以设置参数的默认值D.成员函数可以重载
46.类的成员函数不包括_______C________。
A.构造函数B.析构函数C.友元函数D.拷贝构造函数
47.继承具有___A_____,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。
A.传递性B.规律性C.重复性D.多样性
48.若运算符“>
”被重载为类的友元函数,则表达式obj1>
obj2被C++编译器解释为___C____。
(obj1,obj2)B.obj1.operator>
(obj2)
(obj1,obj2)D.operator>
()
49.下面关于友元的描述中,错误的是___C______。
A.友元函数可以访问该类的私有数据成员
B.友元可以提高程序的运行效率
C.类与类之间的友元关系可以继承
D.一个类的友元类中的成员函数都是这个类的友元函数
50.有关构造函数的说法不正确的是____C_____。
A.构造函数名字和类的名字一样B.构造函数无任何函数类型
C.构造函数有且只有一个D.构造函数在说明类的某个对象时自动执行
51.设n=8,i=4,则赋值运算n%=i+1执行后,n的值是_____C_____。
A.0B.1C.3D.2
52.在下列选项中,_____B____不能作为判定函数重载的依据。
A.参数个数B.函数的类型C.参数的类型D.函数名称
53.有关虚函数的说法不正确的是______A_________。
A.静态成员函数可以是虚函数B.只有类的成员函数才能说明为虚函数
C.构造函数不能是虚函数D.析构函数可以是虚函数
54.派生类的对象对它的基类___D___是可以访问的。
A.公有继承的私有成员B.私有继承的公有成员
C.公有继承的保护成员D.公有继承的公有成员
55.下列关于switch语句的描述中,___A__是正确的。
A.switch语句中default子句可以没有,也可有一个
B.switch语句中每个语句序列中必须有break语句
C.switch语句中default子句只能放在最后
D.switch语句中case子句后面的表达式只能是整型表达式
56.能用友元函数重载的运算符是____D______。
A.->
B.=C.[]D.+
三、读程序写结果
1.#include<
iostream.h>
usingnamespacestd。
classpoint
{public:
point(inti,intj){x=i。
y=j。
}
voidprint(){cout<
‘(’<
x<
‘,’<
y<
‘)’<
voidoperator+=(pointp){x+=p.x。
y+=p.y。
voidoperator-=(pointp){x-=p.x。
y-=p.y。
private:
intx,y。
voidmain()
{pointp1(2,3),p2(1,4)。
p1.print()。
p2.print()。
p1+=p2。
p2-=p1。
运行结果:
(2,3)
(1,4)
(3,7)
(-2,-3)
2.
#include<
classtimer
timer(){seconds=0。
timer(intt){seconds=t。
timer(intmin,intsec){seconds=min*60+sec。
intgettime(){returnseconds。
intseconds。
{timera,b(20),c(3,12)。
cout<
"
seconds1="
a.gettime()<
seconds2="
b.gettime()<
seconds3="
c.gettime()<
seconds1=0
seconds1=20
seconds1=192
3.
#include<
iostream>
classA
A(inti,intj){a=i。
b=j。
voidmove(intx,inty){a+=x。
b+=y。
voidshow(){cout<
'
('
a<
'
b<
'
)'
inta,b。
classB:
publicA
B(inti,intj,intk,intl):
A(i,j),x(k),y(l){}
"
voidfun(){move(3,5)。
voidf1(){A:
show()。
intmain()
{Ae(4,6)。
e.show()。
Bd(1,3,2,5)。
d.fun()。
d.A:
d.B:
d.f1()。
system("
pause"
return0。
(4,6)
(4,8)
2,5
4.
A(inti=0){m=i。
constructorcalled."
m<
voidset(inti){m=i。
voidprint()const{cout<
endl。
A(constA&
s){m=s.m。
copy"
~A(){cout<
destructorcalled."
intm。
{constintN=7。
Amy。
my=N。
my.print()。
constructorcalled.0
constructorcalled.7
desstructorcalled.7
7
5.
classM
M(inta=0,intb=0){x=a。
y=b。
intgetx(){returnx。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 打印