继承与多态性习题参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

继承与多态性习题参考答案

————————————————————————————————作者:————————————————————————————————日期:

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.求长方形的面积和长方体的表面积、体积

#include

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<<"长为"<

}

};

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<<"长为"<

}

};

void main()

{

Rectangle r(2,3); r.function(); r.show();

Cuboid c(2,3,4); c.function(); c.fun(); c.show();

}

2.产生并输出圆桌信息

#include

#include

class Circle{

protected:

double radius;

double area;

public:

Circle(double r) { radius=r; }

};

class Table{

protected:

double height;

public:

Table(double h) { height=h; }

};

class Roundtable:public Table,public Circle

{

char *color;

public:

Roundtable(double h,double r,char c[]):Circle(r),Table(h) {

color=new char[strlen(c)+1];

strcpy (color, c);

}

void fun() { area=3.14*radius*radius; }

void show()

{

cout<<"高度:"<

cout<<"面积:"<

cout<<"颜色:"<

}

~Roundtable() { delete []color; }

};

void main()

{

Roundtable rt(0.75,1.1,"黑色");

rt.fun(); rt.show();

}

3.计算企业的经营税

#include

#include

class Tax{

protected:

char name[50]; // 企业名称

double income; // 经营收入

double taxes; // 税金

public:

Tax(char *n,double in)

{

strcpy(name,n);

income=in;

}

virtual void fun()=0;

相关文档
最新文档