继承与多态性习题参考答案.doc
文本预览下载声明
C++程序设计语言习题及实验指导
第8章 继承与多态性习题参考答案
8.3 习题
8.3.1 选择题
题号 1 2 3 4 5 6 7 8 9 10 答案 C D A D A B C B D D 题号 11 12 13 14 15 16 17 18 19 20 答案 D D A C B C C C A C
8.3.2 填空题
1. (1) a、b、c、x、y、z (2) b、y (3) c、z (4) a、x (5) b、c、x、y、z
(6) b、y (7) y (8) b、c、z (9) a、x (10) b、c、x、y、z (11) y
(12) y (13) z (14) a、b、c、x (15) b、c、x、y、z (16) y
2. 私有
3. 抽象
4. 虚基
5. (1) 基类 (2) 对象
6. (1) 静态 (2) 编译 (3) 虚函数
7. (1) 2 1 (2) 0 5
8. (1) 100 200 300 30 (2) 10 100 (3) 20 200
9. (1) 5 10 (2) end. (3) 20 10
10.(1) classA classB (2) end. (3) ~classB ~classA
11.(1) 10 (2) build B (3) build C (4) release A
12.(1) class B (2) class C (3) class D (4) 5
13.(1) 5 5 (2) 20 20
14.(1) 10 (2) 10 20
15.(1) 1 (2) 3 (3) 5 (4) 100 10
16.(1) B::f() (2) B::fun() (3) A::f() (4) B::fun()
17.(1) 姓名陈涛年薪6.8万元。 (2) 姓名李原 (3) 姓名李原月工资4000元
18.(1) 110 (2) 2220
19.(1) protected 或public (2) Base1(s1),Base2(s2) 或Base2(s2),Base1(s1)
(3) Base1::str (4) test.print()
20.(1) virtual void show()=0 (2) C(int,int,int) (注:参数可有任一名称)
(3) b1(y) (4) t
8.3.3 编程题
1.求长方形的面积和长方体的表面积、体积
#includeiostream.h
class Rectangle{
protected:
float L; // 长方形的长
float W; // 长方形的宽
float area; // 长方形的面积
public:
Rectangle(float L1,float W1)
{
L=L1;
W=W1;
}
void function() { area=L*W; }
void show()
{
cout长为L,宽为W的长方形面积为areaendl;
}
};
class Cuboid:public Rectangle{
float H; // 长方体的高
float volume; // 长方体的体积
public:
Cuboid(float a,float b,float c):Rectangle(a,b)
{ H=c; }
void function() { area=(L*W+L*H+W*H)*2; }
void fun() { volume=L*W*H; }
void show()
{
cout长为L,宽为W,高为H的长方体表面积为area,体积为volumeendl;
}
};
void main()
{
Rectangle r(2,3); r.function(); r.show();
Cuboid c(2,3,4); c.function(); c.fun(); c.show();
}
2.产生并输出圆桌信息
#includeiostream.h
#includestring.h
class Circle{
protected:
double radius;
doub
显示全部