下列关于抽象类和纯虚函数的说法错误的是()。A.抽象类只能作为基类使用,而纯虚函数的实现由派生类
下列关于抽象类和纯虚函数的说法错误的是()。
A.抽象类只能作为基类使用,而纯虚函数的实现由派生类给出
B.抽象类是指具有纯虚函数的类
C.纯虚函数是一种特殊的虚函数,它允许没有具体的实现
D.一个基类的说明中有纯虚函数,则该基类的派生类一定不再是抽象类
下列关于抽象类和纯虚函数的说法错误的是()。
A.抽象类只能作为基类使用,而纯虚函数的实现由派生类给出
B.抽象类是指具有纯虚函数的类
C.纯虚函数是一种特殊的虚函数,它允许没有具体的实现
D.一个基类的说明中有纯虚函数,则该基类的派生类一定不再是抽象类
A.纯虚函数是一种特殊的虚函数,它没有具体的操作内容
B.抽象类是指具有纯虚函数的类
C.一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类
D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出
下列关于抽象类的表述中正确的是()。
A)派生类必须要实现作为基类的抽象类中的纯虚函数
B)抽象类的成员函数至少有一个没实现
C)抽象类不可能用来定义对象
D)派生类不能成为抽象类
如果一个类至少有一个纯虚函数,那么该类称为()。
A.抽象类
B.虚基类
C.派生类
D.以上都不是
下列有关继承和派生的叙述中,正确的是______。
A.如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员
B.派生类的成员函数可以访问基类的所有成员
C.基类对象可以赋值给派生类对象
D.如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类
下列描述中,抽象类的特性是()。
A.可以说明虚函数
B.可以定义友元函数
C.可以进行构造函数重载
D.不能说明其对象
下面是类Shape的定义: class Shape{ public: virtual void Draw()=0; } 下列关于Shape类的描述中,正确的是()。
A.类Shape是虚基类
B.类Shape是抽象类
C.类Shape中的Draw函数声明有误
D.语句“Shape s;”能够建立Shape的一个对象s
下列关于函数子程序虚实参数的错误说法是()。
A.可以没有形参数
B.虚实结合的数组长度可以不同
C.实参表与虚参表类型可以不同
D.函数名可以作为虚参
/****************** 文件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(){}
};
A.虚方法必须有方法体,可以被子类重写
B.抽象方法不允许有方法体,且必须被非抽象子类重写
C.抽象方法必须在抽象类中,而虚方法可以在所有类中
D.在子类中重写抽象方法或虚方法,都需要用override关键字