1.下面关于C++中类的继承与派生的说法错误的是( B )。
    A.基类的protected成员在公有派生类的成员函数中可以直接使用
    B.基类的protected成员在私有派生类的成员函数中可以直接使用
    C.私有派生时,基类的所有成员访问权限在派生类中保持不变
    D.继承可以分为单一继承与多重继承

    2.派生类继承基类时,如果省略继承方式,则默认为(A )继承。
    A.公有 B.保护 C. 私有

    3.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的(A )。
    A. public成员B. private成员 C. protected 成员 D. 友元

    4.关于多重继承二义性的描述,错误的是(B )。
    A.派生类的多个基类中存在同名成员时,派生类对这个成员访问可能出现二义性
    B.一个派生类是从具有共同的间接基类的两个直接基类派生来的,派生类对该公共基类的访问可能出现二义性
    C.解决二义性最常用的方法是作用域运算符对成员进行限定
    D.派生类和它的基类中出现同名函数时,将可能出现二义性

    5.在如下继承层次下,当实例化有派生类对象时,调用构造函数的顺序为(B )。
    class Base{…};
    class Base1: virtual Base{…};
    class Base2: virtual Base{…};
    class Derived : public Base2, public Base1{…};
    A. Base(), Base1(), Base(), Base2(), Drived()
    B. Base(), Base2(), Base(), Base1(), Drived()
    C. Base(), Base1(), Base2(), Drived()
    D. Base(), Base2(), Base1(), Drived()

    8.在如下继承层次下,有关访问权限描述不正确的为(B )。
    class A{
    protected: int x;
    public : void set_X( int i){ x = i;} ;
    int get_X( ){ return x; } ;
    };
    class B : public A
    { int y; };
    class C: protected B{…};
    A. B类中可以直接访问父类A中的数据成员x;
    B. B类对象不可以直接访问其数据成员y;
    C. C 类对象可以调用get_X()访问父类数据成员x;

    9.如有基类Base和派生类Derived,实例化对象Base b; Derived d;叙述正确的是(C )。
    A. Derived pDev = new Base();
    B. Derived类中不能定义与Base类同名的成员,以免引用时引起歧义;
    C. Base
    pb =&d ; Derived pd = &b; 为正确的赋值操作;
    *Base& rb = d; Base bb = d; 为正确的赋值操作;