面向对象技术 练习2 ffh
多态 操作符重载 模板与标准模板库
多态 关于多继承二义性的描述中,( )是错的。 A.一个派生类的两个基类中都有某个同名成员,在派生类中对这个 成员的访问可能出现二义性; B.解决二义性的最常用的方法是对成员名的限定义; C.基类和派生类中同时出现的同名函数,存在二义性问题;(调用 时才会出现二义性) D.一个派生类是从两个基类派生出来的,而这两个基类又有一个共 同的基类,对该基类成员进行访问时,也可能出现二义性。 带有虚基类的多层派生类构造函数的成员初始化列表中虚基类的构造 函数将被初始化( ) A .类下面的派生类个数有关; B.二次; C.二次; D.一次。 C D
1.在C++中,要实现动态联编,必须使用( )调用虚函数。 (a) 类名 (b) 派生类指针 (c) 对象名 (d) 基类指针 2.下列函数中,可以作为虚函数的是( 多选 )。 (a) 普通函数 (b) 构造函数 (c) 成员函数 (d) 析构函数 3.在派生类中,重载一个虚函数时,要求函数名、参数的 个数、参数的类型、参数的顺序和函数的返回值( )。 (a) 不同 (b) 相同 (c) 相容 (d) 部分相同 D cd b
4.下面函数原型声明中,( )声明了fun为纯虚函数。 (a) void fun()=0; (b)virtual void fun()=0; (c) virtual void fun(); (d)virtual void fun(){ }; 5.若一个类中含有纯虚函数,则该类称为( )。 (a) 基类 (b) 纯基类 (c) 派生类 (d) 抽象类 6.假设Aclass为抽象类,下列声明( )是正确的。 (a) Aclass fun( int ) (b) Aclass * p (c) int fun( Aclass ) (d) Aclass Obj b d b
7.下面描述中,正确的是( 多选 )。 (a) 虚函数是没有实现的函数 (b) 纯虚函数的实现在派生类定义 (c) 抽象类是只有纯虚函数的类 (d) 抽象类指针可以指向不同的派生类 8。当一个类的某个函数被说明为virtual时,该函数在该类的 所有派生类中()。 A.都是虚函数 B.只有被重新说明时才是虚函数 C.只有被重新说明为virtual时才是虚函数 D.都不是虚函数 bd A
( )是一个在基类中说明的虚函数,它在该基类中没有定义,但要求 任何派生类都必须定义自己的版本。 A.虚析构函数 B.虚构造函数 C.纯虚函数 D.静态成员函数 下列描述中,()是抽象类的特性。 A.可以说明虚函数 B.可以进行构造函数重载 C.可以定义友元函数 D.不能定义其对象 类B是类A的公有派生类,类A和类B中都定义了虚函数func( ),p是一 个指向类A对象的指针,则p->A::func( )将()。 A.调用类A中的函数func( ) B.调用类B中的函数func( ) C.根据p所指的对象类型而确定调用类A中或类B中的函数func( ) D.既调用类A中函数,也调用类B中的函数 C D A
类定义如下。 class A{ public: virtual void func1( ){ } void fun2( ){ } }; class B:public A{ public: void func1( ) {cout<<”class B func1”<<endl;} virtual void func2( ) {cout<<”class B func2”<<endl;} }; 则下面正确的叙述是() A.A::func2( )和B::func1( )都是虚函数 B.A::func2( )和B::func1( )都不是虚函数 C.B::func1( )是虚函数,而A::func2( )不是虚函数 D.B::func1( )不是虚函数,而A::func2( )是虚函数 A