单项选择题关于抽象类的描述,下面哪一个是不正确的()

A.抽象类只能作为其它类的基类,不能创建对象
B.抽象类不能用作函数返回类型
C.可以对抽象类作显示的类型转换
D.在抽象类的派生类中,如果没有重新定义纯虚函数,则该派生类还是抽象类


您可能感兴趣的试卷

你可能感兴趣的试题

1.单项选择题

仔细阅读下面的程序

请问该程序的正确输出是()

A.constructorBdestructorB
B.constructorBdestructorC
C.constructorBdestructorBdestructorC
D.constructorBdestructorCdestructorB

2.单项选择题关于纯虚函数和抽象类,下列哪个说法是错误的()

A.纯虚函数是一种特殊的虚函数,它没有具体的实现
B.抽象类是指具有纯虚函数的类
C.一个基类中说明了纯虚函数,该基类的派生类一定不再是抽象类
D.抽象类一般作为基类来使用,而不能创建任何具体的对象

3.单项选择题已知类CVirtualClass,下面四个选项中均定义了该类的成员函数,请问,哪一个定义是正确的()

A.virtualCVirtualClass();
B.staticvirtualvoidsetValue(int);
C.constCVirtualClass&print()const=0;
D.virtualintgetValue()const=0;

4.单项选择题如果一个类有且仅有一个纯虚函数,则该类一定为()

A.抽象类
B.虚基类
C.派生类
D.以上都不对

5.单项选择题

已知类的继承层次如下图所示,其中c、e是虚基类,它们的构造函数分别是a()、b()、c()、d()、e(),现在给类a定义一对象,则在此时各类构造函数的调用顺序是()

A.d()、e()、b()、e()、d()、c()、a()
B.e()、d()、c()、d()、b()、a()
C.e()、d()、c()、e()、d()、b()、a()
D.e()、d()、d()、c()、b()、a()

6.单项选择题

该程序最终的输出是()

A.A::msg
B.B::msg
C.A::msg B::msg
D.没有重载类B的输出运算符,程序编译出错

7.单项选择题

下面的程序段定义了三个类A、B、C和一个全局函数func()

下列四个选项中,哪个说法是正确的()

A.B::funcB()能够访问A::proVar变量
B.C::funcC()能够访问A::proVar变量
C.func()能够访问B::pubVar变量
D.func()能够访问C::pubVar变量

8.单项选择题

该程序的输出是() 

A.B::print()called.
B.A::print()called.
C.A::print()called. B::print()called.
D.B::print()called. A::print()called.

10.单项选择题在继承关系中,基类和派生类之间的关系,下面四个选项中,那个是不准确的()

A.派生类指针不可以指向基类对象
B.基类指针可以指向派生类对象,并可以访问派生类的所有public类型的成员
C.通过指针对成员函数的调用,仅与指针本身类型有关,而与当前指向的对象无关,除非将成员函数定义成虚函数
D.必须通过对指针类型的强制转换,来实现派生类指针访问基类对象