![](https://static.youtibao.com/asksite/comm/h5/images/m_q_title.png)
若有如下类定义,则下列关于Shape类的叙述中,正确的是()classShape{public:virtualvoidDraw();};
A.类Shape中的Draw函数是纯虚函数
B.类Shape是抽象类
C.类Shape是虚基类
D.Shapes;能建立Shape的对象s
![](https://static.youtibao.com/asksite/comm/h5/images/solist_ts.png)
A.类Shape中的Draw函数是纯虚函数
B.类Shape是抽象类
C.类Shape是虚基类
D.Shapes;能建立Shape的对象s
A.一切成功编译
B.Shape可以编译,Square不能编译
C.Square可以编译,Shape不能编译
D.Square,Shape都不能编译
/****************** 文件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(){}
};
class Shape
{public:
Shape(){}
~Shape(){}
virtual float GetPerim()=0;
}
A.A::A(int x,int y):y(y){x=x;};
B.A::A(int x,int y):x(x){y=y;};
C.A::A(int x,int y):y(y){this->x=x;};
D.A::A(int x,int y):x(x){this->y=y;};
A.函数模板必须由程序员实例化为可执行的模板函数
B.函数模板的实例化由编译器完成
C.一个类定义中,只要有一个函数模板,则这个类是类模板
D.类模板的成员函数都是函数模板
A.方法定义了类所许可的行动
B.从一个类的创建的所有对象可以使用同一组属性和方法
C.每个方法应该有一个参数
D.如果在同一个类定义了类似的操作,则它们的行为也应该是类似的
A.B::B(int m) : a(m), z(m){ }
B.B::B(int m) : a(),z() { }
C.B::B(int m) : a(m,m), z(m){ }
D.B::B(int m) : a=(m,m), z=m { }
A.类的定义格式为:类修饰符class类名extends父类implements接口{...}
B.类名可以是任意的符号
C.class是关键字,用来定义类
D.类的实现包括两部分:类声明和类体