C++习题第07章 继承和派生.docx

上传人:b****7 文档编号:23603349 上传时间:2023-05-18 格式:DOCX 页数:19 大小:20.81KB
下载 相关 举报
C++习题第07章 继承和派生.docx_第1页
第1页 / 共19页
C++习题第07章 继承和派生.docx_第2页
第2页 / 共19页
C++习题第07章 继承和派生.docx_第3页
第3页 / 共19页
C++习题第07章 继承和派生.docx_第4页
第4页 / 共19页
C++习题第07章 继承和派生.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C++习题第07章 继承和派生.docx

《C++习题第07章 继承和派生.docx》由会员分享,可在线阅读,更多相关《C++习题第07章 继承和派生.docx(19页珍藏版)》请在冰豆网上搜索。

C++习题第07章 继承和派生.docx

C++习题第07章继承和派生

第07章继承和派生

(1)面向对象程序设计的____机制实现了代码重用,有效地缩短了程序的开发周期。

(2)在继承关系中,被继承的类称为____,通过继承关系定义出来的新类称为_____。

(3)派生类的继承方式有____,____和____3种,其中默认的继承方式为____.。

(4)公有继承时,基类的私有成员为跑生类的____成员,基类的保护成员成为派生类的____成员,基类的公有成员成为派生类的____成员。

(5)在派生类中不能访问基类的____成员,这符合面向对象程序设计的封装思想。

(6)C++语言不仅支持____继承,也支持____继承。

(7)可以把派生类的对象当做基类对象来处理,这是____的概念。

(8)根据联编实现的不同极端,可将其分为____联编和____联编两种。

(9)声明了纯虚函数的类,称为____。

2.选择题

(1)下列关于派生类的描述中,不正确的是()

A)派生类的成员除了包含它自己的成员的访问权限在派生类中保持不变

B)派生类中继承的基类

C)派生类至少有个一个基类

D)一个派生类可以作为另一个派生的基类

(2)在保护继承中,基类的私有成员变成派生类的()

A)不可访问成员B)稀有成员C)保护成员D)公有成员

(3)若有如下类声明:

ClassBase

{intk;

Public:

Voidset(intn){k=n;}

Intget()const{returnk;}

};

ClassDerived:

protectedBase

{protected:

Intj;

Public:

Voidset(intm,intn)

{Base:

:

set(m);

j=n;

}

Intget()const

{returnBase:

:

get()+j;

}

};

则类Derived中保护的数据成员和成员函数的个数是()

A)4B)3C)2D)1

(4)在派生类的结构函数的初始化表中,不能包含()

A)基类的构造函数B)派生类的一般数据成员的初始化

C)基类的子对象的初始化D)派生类的子对象的初始化

(5)若如下类声明:

ClassX

{intx;

Public:

X(intn){x=n;}

};

ClassY:

publicX

{inty;

Public;

Y(inta,intb);

};

在构造函数Y的下列定义中,正确的是()

A)Y:

:

Y(inta,intb):

x(a),y(b){}B)Y:

:

Y(inta,intb):

X(a),y(b){}

C)Y:

:

Y(inta,intb):

x(a),Y(b){}D)Y:

:

y(INTA,INTB):

X(a),Y(b){}

(6)在多重继承中,对于基类成员在派生类中的访问权限与单继承的规矩()

A)完全相同B)完全不同C)部分相同D)以上均不正确

(7)下列说法中不正确的是()

A)私有继承时,基类的公有成在派生中是私有成员

B)保护继承时,基类的公有成在派生中是保护成员

C)私有继承时,基类的公有成在派生中是公有成员

D)私有继承时,基类的私有成在派生中是私有成员

(8)下列关于赋值兼容规则的描述中不正确的是()

A)派生类的对象可以赋值给基类对象

B)基类的对象可以赋值给派生的对象

C)派生类的对象可以初始化为基类的引用

D)派生类对象的地址可以赋值个指向基类的指针

(9)下列关于虚类的描述中,不正确的是()

A)使用虚基类的目的是消除多重继承下的二义性

B)虚基类中的子对象的初始化次数与该虚基类的派生类的个数有关

C)虚基类的多层派生类结构函数的成员初始化列表中都要列出对虚基类构造函数

的调用

(10)运行时的多态性上指()

A)用指向对象的基类指针或引用调用一个纯虚函数

B)用指向对象的基类指针或用调用一个虚函数

C)以任何方式调用一个纯虚函数

D)以任何方式调用一个虚函数

(11)在C++中,用于现实运行时多态性的是()

A)内联函数B)重载函数C)摸板函数D)虚函数

(12)下列关于虚函数的描述中,正确的是()

A)从虚基类继承的函数都是虚函数B)虚函数不得是静态成员函数

B)只能通过指针或引用调用虚函数D)抽象类中的成员函数都虚函数

3.

(1)

#include

classA

{public:

Intal;

Protected:

Inta2;

Private:

Inta3;

};

ClassB:

publicA

{public:

Intb1;

proteted:

Intb2;

Private:

Intb3;

};

VoidB:

:

fb()

{a1=10;a2=20a3=30:

B1=100;b2=100;b3=100;

}

Voidmain()

{Ax;

By;

x.a1=10;x.a2=20,x.a3=30;

y.a1=100;y.a2=200;y.a3=300;

y.b1=1000;y.b2=2000;y.b3=3000;

}

(2)

#include

Usingnamespacestd;

ClassBase

{private:

Voidfunl()con

4.读程序写结果

5.简答题

(1)派出类的继承方式有哪几种?

各种继承方式各有什么特点?

(2)在继承方式的派出类构造函数中如何对基类的数据成员初始化?

各构造函数被调用的顺序和机理是什么?

请举例说明。

(3)什么是虚基类?

它的作用是什么?

(4)什么是抽象类?

抽象类的主要作用是什么?

6.编程题

(1)分别定义一个日期类和时间类,然后派生出一个新的日期时间类。

请以继承方式实现该类。

(2)在例7-16胡基础上,由Student类和Teacher类派生出一个描述在职读书的教师的类,并编写出相对应的测试代码。

(3)设计一个抽象类,并由它派生出圆柱体、球体和正方体3个类,实现计算圆柱体、球体和正方体表面积和体积;要求按照运行时多态性的方法设计主函数,进行测试。

习题参考答案

第1章C++语言概述

1.填空题

(1)函数说明,函数体

(2)声明区,主程序区,函数定义区

(3)多态性

(4)namespace,using

(5)std

(6)cin,>>

(7)//

(8)对数据的操作

2.判断题

(1)对

(2)错(3)错(4)错(5)错

3.改错题

(1)没有函数体,应改为

voidmain(){};

(2)语句没有分号,应改为

usingnamespacemyspace;

(3)cout和操作符<<共同完成输出的功能,应改为

cout<<"Inputyourname:

";

(4)应改为

#include

4.简答题(略)

5.编程题(略)

第2章基本数据类型、运算符与表达式

1.选择题

(1)B

(2)D(3)B(4)D(5)B

2.简答题

(1)(a)、(c)(e)、(f)、(g)、(h)、(i)

(2)(a)、(g)、(i)、(j)

(3)

(a)5.5

(b)0

(c)20

(d)0,0

(e)1

(f)1,2

(g)3

(h)-40

(i)2

(j)3

(k)s1>='0'&&s1<='9'

(l)N!

=0

3.读程序写结果

(1)0,15

(2)(1、1、1),(-1、-1、-1)

(3)

(a)a*a+2*a*b+b*b

(b)4.0/3.0*3.1415926*R*R*R

(c)5.0/9.0*(F-32)

(d)b>=a&&b<=c

(4)

36

41

43

(5)

x=1

4.编程题(略)

第3章C++的控制语句

1.选择题

(1)B

(2)A(3)A(4)C(5)A

2.判断题

(1)错

(2)对(3)对(4)错(5)错

3.读程序写结果

(1)

1

22

333

4444

55555

(2)

1

121

12321

1234321

123454321

(3)

j的值为0;

i的值为2;

4.编程题(略)

第4章函数

1.填空题

(1)void

(2)静态全局变量,static

(3)函数重载

(4)inline

(5)递归函数

(6)宏定义命令,文件包含命令,条件编译命令

2.判断题

(1)错

(2)错(3)错(4)错(5)错

(6)对(7)错(8)错(9)对(10)对

3.读程序写结果

(1)

x=7,y=4

x=9,y=5

(2)

34.56

101

(3)

16

22

28

(4)

1215182124

(5)

2,1,4,1,3,2,1,

4.简答题(略)

5.编程题(略)

第5章构造数据类型

1.选择题

(1)C

(2)D(3)A(4)B(5)C

2.判断题

(1)错

(2)对(3)对(4)错(5)错

3.读程序写结果

(1)

153

(2)

42

256810

(3)

65535,21

(4)

4

19

(5)

6904

(6)

4

3

2

1

0

4.编程题(略)

第6章类和对象

1.填空题

(1)类,对象,类

(2)数据成员,成员函数

(3)不能

(4)private,protected,public,private

(5)成员函数

(6)friend

(7)类名,作用域运算符

(8)对象名.成员名,指针变量名->成员名,(*指针变量名).成员名

(9)构造,析构,构造,析构

(10)常量数据,引用数据

(11)全局,数据类型,所属的类

(12)常成员,只读

(13)成员,友元

(14)类数据成员,类成员函数

(15)this

(16)浅拷贝

2.选择题

(1)C

(2)C(3)B(4)C(5)B

(6)C(7)D(8)B(9)C(10)D

(11)A(12)C(13)D(14)D(15)B

3.改错题

(1)man1.salary=1000.00;不能在类外访问类的私有成员

(2)floatr=0;和floatc=0;类本身是抽象的,不能在类的定义体中给其数据成员赋值

}后缺少分号“;”

(3)成员函数voidsetdata(floatx1,floaty1,floatr);没有实现

(4)构造函数名point()应与类名同名,为Point

没有头文件包含#include

4.读程序写结果题

(1)

x=0,y=0

x=100,y=200

(2)

x=100,y=200

x=1000,y=2000

t=3.14

(3)

Sta:

:

fun2()=10

s.fun2()=11

r.a=20

(4)

Constructor1called!

x=0

Constructor2called!

x=100

Destructorcalled!

Destructorcalled!

(5)

57

5.简答题(略)

6.编程题(略)

第7章继承和派生

1.填空题

(1)继承

(2)基类,派生类

(3)private,protected,public,private

(4)不可访问,保护,公有

(5)私有

(6)单

(一),多(重)

(7)赋值兼容规则

(8)静态,动态

(9)抽象类

2.选择题

(1)B

(2)A(3)B(4)C(5)B

(6)A(7)D(8)B(9)B(10)B

(11)D(12)B

3.改错题

(1)本题的错误主要是数据成员的访问权限问题:

基类的私有成员在派生类中不可访问,如fb()函数中的a3=30;语句;类的私有和保护成员在类外不能访问,如main函数中的x.a2=20;.a3=30;,y.a2=200;,y.a3=300;,y.b2=2000;和y.b3=3000;语句。

(2)本题的错误主要是成员函数的访问权限问题:

由于派生类Derived是基类Base的保护派生类,所以基类中的私有成员变成派生类的不可访问成员,而基类的保护和公有成员则变成派生类的保护成员。

对于类的不可访问和保护成员在类外是不能访问的,故main函数中的语句obj.funl();,obj.fun2();和obj.fun3();是错误的。

4.读程序写结果题

(1)

d=110

b=190

d=110

d=110

(2)

d=110

b=190

d=110

b=90

(3)

基类B1的构造函数被调用

基类B3的构造函数被调用

基类B2的构造函数被调用

派生类D的构造函数被调用

派生类D的析构函数被调用

基类B2的析构函数被调用

基类B3的析构函数被调用

基类B1的析构函数被调用

(4)

A

B

C

D

D

(5)

A

B

D

D

(6)

A

A

B

D

D

(7)

A

B

C

D

D

(8)

5

25

5.简答题(略)

6.编程题(略)

第8章运算符重载

1.填空题

(1)函数重载

(2)重载为类的成员函数,重载为类的友元函数

(3)Operator

(4)1,2

(5)友元

2.选择题

(1)B

(2)D(3)A(4)D(5)B

(6)C(7)C(8)C

3.简答题(略)

4.编程题(略)

第9章模板

1.填空题

(1)类模板,函数模板

(2)类,对象

(3)数据类型

(4)fun(5)

2.选择题

(1)C

(2)B(3)C(4)B(5)D

3.简答题(略)

4.编程题(略)

第10章文件

1.填空题

(1)FILE,stdio.h

(2)stdio.h,fopen,fclose

(3)顺序,随机

(4)cin,>>,cout,<<

(5)ios

(6)fstream,open,close

(7)文件指针的当前位置,文件开头,文件尾

2.选择题

(1)B

(2)B(3)A(4)D(5)B

(6)D(7)C(8)B(9)A(10)B

3.简答题(略)

4.编程题(略)

第11章string类与标准模板库STL

1.填空题

(1)字符数组,string类

(2)string

(3)容器,迭代器,算法

(4)顺序,关联

(5)指针

(6)函数模板

2.简答题(略)

3.编程题(略)

第12章异常处理

1.填空题

(1)throw,try,catch

(2)多

(3)数据类型

(4)catch(…)

(5)相反

2.判断题

(1)错

(2)对(3)错(4)错(5)错

3.简答题(略)

4.编程题(略)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1