C++复习Word下载.docx
- 文档编号:18804702
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:13
- 大小:49.72KB
C++复习Word下载.docx
《C++复习Word下载.docx》由会员分享,可在线阅读,更多相关《C++复习Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
13、静态数据成员
静态数据成员的特点、初始化、使用
14、友元函数
友元函数的定义、特点
第4章
15、重载运算符的规则
定义重载运算符的语法格式
16、运算符重载函数的两种实现形式
17、流插入运算符和流提取运算符的重载
18、转换构造函数和类型转换函数
第5章
派生类的定义
19、派生类成员的访问属性
20、多级派生时的访问属性
21、派生类的构造函数和析构函数
简单派生类的构造函数
有子对象的派生类的构造函数、构造函数和析构函数调用顺序
多层派生时的构造函数
派生类构造函数的特殊形式
派生类的析构函数
多重继承派生类的构造函数
多重继承的二义性问题
虚基类的作用和虚基类的初始化、构造函数调用顺序
赋值兼容性规则
继承与组合
第6章
22、虚函数
23、纯虚函数抽象类
纯虚函数的性质、抽象类的特点
24、实现多态性的基础
第8章
25、异常机制
考试题型
一、选择题
1、假定A为一个类,则执行“Aa[50];
”语句时,自动调用该类构造函数的次数为
()。
A.1
B.2
C.50
D.0
2、下列运算符中,( )运算符不能重载
A.&
&
B.[] C. ?
:
D.=
3、关于动态绑定的下列描述中,( )是错误的
A.动态绑定是以虚函数为基础的
B.动态绑定是在运行时确定所调用的函数代码的
C.动态绑定调用函数的操作是指向对象的指针或对象引用
D.动态绑定是在编译时确定操作函数的
4、下列各类函数中,()不是类的成员函数
A.类型传换函数B.析构函数
C.友元函数 D.拷贝构造函数
5、分析程序
classA{
public;
A(){};
};
classB:
publicA{
public:
B(){};
intmain()
{
Bb;
return0;
}
构造函数的执行顺序为:
()
A.B(),A()B.A(),B()C.B()D.A()
6、可以在类外访问的成员属性是()。
A.publicB.public和protectedC.protectedD.private
7、主函数内,对x访问错误的是()。
classA
staticintx;
…
intA:
:
x=10;
Aa[50];
cout<
<
a.x<
endl;
A:
x<
a[0].x<
a[1].x<
A.a.xB.A:
xC.a[0].xD.a[1].x
8、关于公有继承的说法正确的是()。
A.基类的成员都可以被子类继承下来,而且性质不变
B.基类的公有成员、私有成员可被子类继承下来,而且性质不变
C.基类的公有成员、保护成员可被子类继承下来,而且性质不变
D.基类的公有成员、保护成员可被子类继承下来,而且性质不变,私有成员不被继承
9、分析下列程序
publicA
A*p,a;
Bb;
p=&
a;
b;
a=b;
b=a;
return0;
主函数中,错误的语句是()。
A.p=&
B.p=&
C.a=b;
D.b=a;
10、下列叙述正确的有()
①纯虚函数一定要在子类中实现
②抽象类可以实列化
③派生类可以不对纯虚函数进行实现
④抽象类可以定义指针
A.①②B.③④C.①②③D.①②③④
11、继承在软件开发中的重要意义是()。
A.提高代码的可重用性B.提高程序的运行效率
C.加强类的封装性D.实现数据的隐藏
12、分析程序
voidfun(){cout<
”funinA”<
…
主函数中,使用B定义了一个对象b,如果对象b要访问从基类A继承下来的fun(),则正确的语句是()。
A.b.B:
fun();
B.b.A:
C.b.fun();
D.b.A.fun();
13、叙述正确的有()。
①构造函数的函数名与类名相同
②构造函数可以重载
③构造函数可以设置默认参数
④构造函数必须指定类型
A.①②B.③④C.①②③D.①②③④
14、对于类A的构造函数定义错误的是()。
A.A(){};
B.voidA(){};
C.A(inta){};
D.A(inta=0){};
15、分析程序
classstudent
private:
stringname;
public:
student(stringn){name=n;
student(const&
s){name=s.name;
operatorstring(){returnname;
students1("
zhangsan"
);
students2(s1);
students3=s1;
stringn=s2;
下列哪种情形需要调用复制构造函数()。
A.students1("
B.students2(s1);
C.students3=s1;
D.stringn=s2;
二、读程序
1、读程序,分析输出结果。
#include<
iostream>
usingnamespacestd;
try
{
inta;
cout<
"
输入一个正整数:
;
cin>
>
if(a<
=0)throwa;
char*s=newchar[3];
输入3个大写字母:
for(inti=0;
i<
3;
i++)
{
cin>
s[i];
if(s[i]<
'
A'
||s[i]>
Z'
)throws[i];
}
}
catch(int)
输入有错误,请输入正整数!
catch(char)
输入有错误,请输入大写英文字母!
没有异常!
分别输入以三组数,分析输出结果:
1ABC
0ABC
2Abc
2、读程序,分析输出结果。
classB1//基类B1声明
{
B1(inti){cout<
constructingB1"
~B1(){cout<
destructingB1"
classB2//基类B2声明
B2(intj){cout<
constructingB2"
j<
~B2(){cout<
destructingB2"
classB3//基类B3声明
B3(){cout<
constructingB3*"
~B3(){cout<
destructingB3"
classC:
publicB2,publicB1,publicB3
C(inta,intb,intc,intd):
B1(a),memberB2(d),memberB1(c),B2(b){}
private:
B1memberB1;
B2memberB2;
B3memberB3;
Cobj(1,2,3,4);
return0
运行结果:
3、读程序,分析输出结果。
classB0//基类B0声明
//外部接口
virtualvoiddisplay()//虚成员函数
B0:
display()"
}
classB1:
publicB0//公有派生
voiddisplay()
{
B1:
display()"
classD1:
publicB1//公有派生
voiddisplay(){
D1:
voidfun(B0*ptr)//普通函数
ptr->
display();
intmain()//主函数
B0b0,*p;
//声明基类对象和指针
B1b1;
//声明派生类对象
D1d1;
p=&
b0;
fun(p);
//调用基类B0函数成员
b1;
//调用派生类B1函数成员
d1;
//调用派生类D1函数成员
return;
三、程序设计
1、设计四个类,Cpeople、Cstudent、Cteacher、Date他们之间的继承和组合关系图下图所示:
根据图中类的属性和方法给出类的定义,并在main函数中给出验证。
Main函数自己设计。
在定义一个多继承派生类Cgraduat派生自Cstudent、Cteacher基类,并验证类的设计是正确的。
2、写一个程序,定义抽象基类Shape(图形),由它派生出别个类:
Circle(圆)、Rectangle(矩形)和Triangle(三角形),由Rectangle(矩形)派生出Squre(正方形),用虚函数分别计算几种图形面积,和每种图形的基本信息。
设计主函数main()测试,使用基类指针数组,使它的每一个元素指向一个派生类对象。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 复习