首页 > 计算机等级考试
题目内容 (请给出正确答案)
[主观题]

已知类定义如下,其中Shape 为基类, Circle 和Rectangle 分别Shape 的直接派生类, Square 为R

ectangle 的直接派生类和Shape 的间接派生类。请模仿Rectangle 类,写出Circle 类的所有成员函数。

/****************** 文件shape.h*************************/

const float PI=3.14159f; // 定义圆周率常量

class Shape // 几何图形抽象类

{

public:

virtual float GetPerimeter()=0; // 纯虚函数,计算周长

virtual float GetAre()=0; // 纯虚函数,计算面积

};

class Rectangle: public Shape // 矩形类

{

public:

Rectangle (float len,float wid):length(len),width(wid){}

~Rectangle (){}

float GetPerimeter() {return 2*(length width);} // 计算矩形周长

float GetAre() {return length*width;} // 计算矩形面积

private:

float length, width; // 矩形的长和宽

};

class Circle: public Shape // 圆类

{

public: // 在下面编写每个成员函数

private:

float rad; // 圆的半径

};

class Square: public Rectangle // 正方形类

{

public:

Square(float len): Rectangle(len,len){}

~Square(){}

};

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“已知类定义如下,其中Shape 为基类, Circle 和R…”相关的问题
第1题
下面是类Shape的定义:class Shape{public:virtual void Draw()=0;}下列关于Shape类的描述中,正确

下面是类Shape的定义: class Shape{ public: virtual void Draw()=0; } 下列关于Shape类的描述中,正确的是()。

A.类Shape是虚基类

B.类Shape是抽象类

C.类Shape中的Draw函数声明有误

D.语句“Shape s;”能够建立Shape的一个对象s

点击查看答案
第2题
已知类MyClass的定义如下: classMyClass{ public: voidfunctionl(MyClass&c){out<<c.dat

已知类MyClass的定义如下: classMyClass{ public: voidfunctionl(MyClass&c){out<<c.data;} statievoidfunction2(MyClas&c){cout<<c.data;} voidfunction3(){out<<data;} statiCvoidfunction4(){COut<<data;} private: intdata; }: 其中有编译错误的函数是()。

A.function1

B.function2

C.function3

D.function4

点击查看答案
第3题
已知3个类O、P和Q,类O中定义了一个私有方法F1和一个公有方法F2;类P中定义了一个公有方法F3,类P为类O的派生类;类Q为类P的派生类,它们的继承方式如下所示:class P:public O{…};class Q:private P{…};在关于类P的描述中正确的是(43);在关于类Q的描述中正确的是(44)。

A.类P的对象可以访问F1,但不能访问F2

B.类P的对象可以访问F2,但不能访问F1

C.类P的对象既可以访问F1,也可以访问F2

D.类P的对象既不能访问F1,也不能访问F2

点击查看答案
第4题
有如下类定义: class MyBase{ int k; public: MyBase(int n=O):k(n)}} int valueeonst{ret

有如下类定义: class MyBase{ int k; public: MyBase(int n=O):k(n)}} int valueeonst{return k;} }; class MyDerived:MyBase{ intj; public: MyDerived(int i):j(i)}} int getKconst{return k;} int getJconst{return j;} }; 编译时发现有一处语法错误,对这个错误最准确的描述是()。

A.函数9etK试图访问基类的私有成员变量k

B.在类MyDerived的定义中,基类名MyBase前缺少关键字public、protected或private

C.类MyDerived缺少一个无参的构造函数

D.类MyDerived的构造函数没有对基类数据成员k进行初始化

点击查看答案
第5题
(31 )若有如下类定义 :class B{void fun1(){}protected:double varl;public:void fun2(){}};cla

(31 )若有如下类定义 :

class B{

void fun1(){}

protected:

double varl;

public:

void fun2(){}

};

class D:public B{

protected:

void fun3(){}

};

已知 obj 是类 D 的对象,下列句中不违反类成员访问控制权限的是

A ) obj.funl();

B ) obj.varl;

C ) obj.fun2();

D ) obj.fun3();

点击查看答案
第6题
若有如下类定义:class B{ void funl(){}protected: double varl:public: void fun2(){}};class D

若有如下类定义: class B{ void funl(){} protected: double varl: public: void fun2(){} }; class D:public B{ protected: void fun3(){} }; 已知obj是类D的对象,下列语句中不违反类成员访问控制权限的是()。

A.obj.funl();

B.obj.varl;

C.obj.fun2();

D.obj.fun3();

点击查看答案
第7题
已知3个类R、S和T,类R中定义了一个私有方法F1和一个公有方法F2;类S中定义了一个公有方法F3;类S为
类R的派生类,类T为类S的派生类。它们的继承方式如下所示:

class S: public R {…};

class T: private S {…};

在关于类S的描述中正确的是(45);在关于类T的描述中正确的是(46)。

A.类S的对象可以访问F1,但不能访问F2

B.类S的对象可以访问F2,但不能访问F1

C.类S的对象既可以访问F1,也可以访问F2

D.类S的对象既不能访问F1,也不能访问F2

点击查看答案
第8题
已知3个类R、S和T,类R中定义了一个私有方法F1和一个公有方法F2,类S中定义了一个公有方法F3,类S为
类R的派生类,类T为类S的派生类,它们的继承方式如下所示:

class S:public R{…};

class T:private S{…};

在关于类S的描述中正确的是(18),在关于类T的描述中正确的是(19)。

A.类S的对象可以访问F1,但不能访问F2

B.类S的对象可以访问F2,但不能访问F1

C.类S的对象既可以访问F1,也可以访问F2

D.类S的对象既不能访问F1,也不能访问F2

点击查看答案
第9题
定义一个名为Square的类表示正方形,使其继承Shape抽象类,覆盖Shape类中的抽象方法getPerimeter()和getArea()。编写程序测试Square类的使用。
定义一个名为Square的类表示正方形,使其继承Shape抽象类,覆盖Shape类中的抽象方法getPerimeter()和getArea()。编写程序测试Square类的使用。

点击查看答案
第10题
有如下类定义:class Foo{public:Foo(int v):value(v){}//①~Foo(){}//②private:Foo(){{//③int va

有如下类定义: class Foo{ public: Foo(int v):value(v){} //① ~Foo(){} //② private: Foo(){{ //③ int value=0; //④ }; 其中存在语法错误的行是

A.①

B.②

C.③

D.④

点击查看答案
第11题
有如下类定义:class Fun{public:Fun(int v):value(v){}//①~Fun(){}//②private:Fun{},//③int valu

有如下类定义: class Fun { public: Fun(int v):value(v){}//① ~Fun(){}//② private: Fun{},//③ int value=0;//④ }; 其中存在语法错误的行是()。

A.①

B.②

C.③

D.④

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改