设有类的定义如下:class A{ };class B:public A{ };class C:public A{ };class D:public C,public B { };则在产生类D的对象时,构造函数的执行顺序是( )。
A. 类A→类B→类A→类C→类D
B. 类A→类C→类A→类B→类D
C. 类A→类B→类C→类D
D. 类A→类C→类B→类D
查看答案
设有类的定义如下:class A{ };class B:public A{ };class C:public B{ };则在产生类C的对象时,构造函数的执行顺序是( )。
A. 类A→类B→类C
B. 类C→类B→类A
C. 类B→类A→类C
D. 类C→类A→类B
关于派生冲突及解决方法,下列说法错误的是( )。
A. 来自不同类的同名成员,可用类名和作用域运算符进行区分
B. 解决派生类中出现基类成员多个拷贝的方法是把基类声明为虚基类
C. 用关键字virtual声明的虚函数不会出现同名冲突
D. 派生成员和新增成员同名时,派生类中默认引用的是新增成员
下列关于虚函数的叙述中正确的是( )。
A. 可以把静态的成员函数声明为虚函数
B. 可以把友元函数声明为虚函数
C. 可以把构造函数和析构函数说明为虚函数
D. 基类中的虚函数继承到派生类中,仍为虚函数
下列关于纯虚函数的叙述中不正确的是( )。
A. 纯虚函数的说明以“=0;”结束,没有函数体
B. 若不定义纯虚函数的函数体,编译时会产生连接错误
C. 含纯虚函数的类是抽象类,不能定义其对象,但可以定义其指针或引用
D. 在派生类中定义基类纯虚函数的实现后,方可产生派生类的对象