A.抽象类只能作为其它类的基类,不能创建对象
B.抽象类不能用作函数返回类型
C.可以对抽象类作显示的类型转换
D.在抽象类的派生类中,如果没有重新定义纯虚函数,则该派生类还是抽象类
您可能感兴趣的试卷
你可能感兴趣的试题
仔细阅读下面的程序
请问该程序的正确输出是()
A.constructorBdestructorB
B.constructorBdestructorC
C.constructorBdestructorBdestructorC
D.constructorBdestructorCdestructorB
A.纯虚函数是一种特殊的虚函数,它没有具体的实现
B.抽象类是指具有纯虚函数的类
C.一个基类中说明了纯虚函数,该基类的派生类一定不再是抽象类
D.抽象类一般作为基类来使用,而不能创建任何具体的对象
A.virtualCVirtualClass();
B.staticvirtualvoidsetValue(int);
C.constCVirtualClass&print()const=0;
D.virtualintgetValue()const=0;
A.抽象类
B.虚基类
C.派生类
D.以上都不对
已知类的继承层次如下图所示,其中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()
该程序最终的输出是()
A.A::msg
B.B::msg
C.A::msg B::msg
D.没有重载类B的输出运算符,程序编译出错
下面的程序段定义了三个类A、B、C和一个全局函数func()
下列四个选项中,哪个说法是正确的()
A.B::funcB()能够访问A::proVar变量
B.C::funcC()能够访问A::proVar变量
C.func()能够访问B::pubVar变量
D.func()能够访问C::pubVar变量
该程序的输出是()
A.B::print()called.
B.A::print()called.
C.A::print()called. B::print()called.
D.B::print()called. A::print()called.
已知类A、B、C的继承层次是:
A:privateB
C:publicA
已知element是B中的公有成员,那么它在C中是()
A.私有的
B.保护的
C.公有的
D.不可访问的
A.派生类指针不可以指向基类对象
B.基类指针可以指向派生类对象,并可以访问派生类的所有public类型的成员
C.通过指针对成员函数的调用,仅与指针本身类型有关,而与当前指向的对象无关,除非将成员函数定义成虚函数
D.必须通过对指针类型的强制转换,来实现派生类指针访问基类对象
最新试题
在程序中使用函数可以是提高程序的开发效率和()。
如果把const限定符放在*号的右边,使指针本身成为一个const指针,即()。
在面向对象程序设计中,将一组数据和这组数据有关的操作集合组装在一起形成对象,这个过程叫()。
()可以看作是符号化了的机器语言,使用助记符编写程序。
string类中为字符串对象提供了一些成员函数,调用这些成员函数的方法为()。
使用delete对动态分配的数组进行释放的语法格式为()。
第一代高级语言以Fortran语言和()语言为代表。
对于只存储一个基本类型数据的指针,使用new为其动态分配的语法格式为()。
运算符new还可以用来对数组进行动态分配,这时需要在数据类型后面添加(),并在其中指明所要分配的数组元素个数。
const_cast的使用格式为()。