面向对象程序设计复习试题答案(编辑修改稿)内容摘要:

的除外) 在派生类中的访问权限 ( C ) A)受限制 B)保持不变 C)受保护 D)不受保护 .下面描述中,表达错误的是:( B ) A)公有继承时,基类中的 public 成员在派生类中仍是 public 的 B)公有继承时,基类中的 private 成员在派生类中仍是 private 的 C)公有继承时,基类中的 protected 成员在派生类中仍是 protected 的 D)私有继承时,基类中的 public 成员在派生类中是 private 的 .下列虚基类的声明中 , 正确的 是:( B ) A)class virtual B: public A B)class B: virtual public A C)class B: public A virtual D)virtual class B: public A .C++设置虚基类的目的是 ( A ) A)消除二义性 B)简化程序 C)提高运行效率 D)减少目标代码 class X{ int a。 public: X(int x=0){a=x。 } }。 class Y:public X{ int b。 public : Y(int x=0,int y=0):X(y)){ b=x。 } }。 下列语句组中出现语法错误的是 ( D) A. X *pa=new Y(1,2)。 a1=Y(1,3)。 b1(2,3)。 X amp。 a3=b1。 a4(10)。 Y b2=a4。 class Base { public: int i。 Base(int t) : i ( t ) { } }。 class Derived: protected Base { Base b。 int j。 public: Derived (int t)。 }。 在构造函数 Derived 的下列定义中 , 正确的是 (B ) A. Derived : : Derived (int t) : b(t), j(t) { } B. Derived : : Derived (int t) : b(t), Base(t), j(t) { } C. Derived : : Derived (int t) : Base(t), j(t) { } D. Derived : : Derived (int t) : i(t), b(t), j(t) { } . 在哪种派生 方式中 , 派生类可以访问基类中的 protected 成员 ( B ) A)public 和 private B)public、 protected 和 private C)protected 和 private D)仅 protected 在 C++中,类与类之间的继承关系具有( C ) A) 自反性 B) 对称性 C) 传递性 D) 反对称性 下列关于类的继承描述中,( A )是错误的 A) 派生类可以访问基类的所有数据成员, 也能调用基类的所有成员函数 B) 派生类也是基类,但基类不一定具有派生类的全部属性和方法 C) 继承描述类的层次关系,派生类可以具有与基类相同的属性和方法 D) 一个基类可以有多个派生类,一个派生类可以有多个基类 .当一个派生类仅有 protected 继承一个基类时,基类中的所有公有成员成为派生类的( C) A) public 成员 B) private 成员 C) protected 成员 D) 友元 当一个派生类私有继承一个基类时,基类中的所有 公有 成员和保护成员成为派 生类的( B ) A) public 成员 B) private 成员 C) protected 成员 D) 友元 不论派生类以何种方法继承基类,都不能使用基类的( B ) A) public 成员 B) private 成员 C) protected 成员 D) public 成员和 protected 成员 在创建派生类对象时,构造函数的执行顺序是( D) A) 对象成员构造函数、基类构造函数、派生类本身的构造函数 B) 派生类本身的构造函数、基类构造函数、对象成员构造函数 C) 基类构造函数、派生类本身的构造函数、对象成员构造函数 D) 基类构造函数、对象成员构造函数、派生类本身的构造函数 下列虚基类的声明中,正确的是 ( D )。 A)class virtual B:public A B)virtual class B:public A C)class B:public A virtual D)class B:virtual public A 下面叙述错误的是 ( A )。 A)基类的 protected 成员在派生类中仍然是 protected 的 B)基类的 protected 成员在 public 派生类中仍然是 protected 的 C)基类的 protected 成员在 private 派生类中是 private 的 D)基类的 protected 成员不能被派生类的对象访问 下列说法中错误的是 ( A )。 A) 保护 继承时基类中的 public 成员在派生类中仍是 public 的 B)公有继承时基类中的 private 成员在派生类中仍是 private 的 C)私有继承时基类中的 public 成员在派生类中是 private 的 D)保护继承时基类中的 public 成员在派生类中是 protected 的 关于多继承二义性的描述中,错误的是 ( B )。 A)一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性 B)解决二义性的最常用的方法是对成员名的限定法 C)基类和派生类中同时出现的同名函数,也存在二义性问题 D)一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,可能出现二义性 下面叙述错误的是 ( C )。 A)派生类可以使用 private 派生 B)对基类成员的访问必须是无 二义性的 C)基类成员的访问能力在派生类中维持不变 D)赋值兼容规则也适用于多继承的组合 派生类的构造函数的成员初始化列表中,不能包含 ( C )。 A)基类的构造函数 B)派生类中子对象的初始化 C)基类中子对象的初始化 D)派生类中一般数据成员的初始化 下面 ( B ) 的叙述不符合赋值兼容规则。 A)派生类的对象可以赋值给基类的对象 B)基类的对象可以赋值给派生类的对象 C)派生类的对象可以初始化基类的引用 D)派生类的对象的地址可以赋值给指向基类的指针 .下列虚基类 的声明中 , 正确的 是:( B ) A)class virtual B: public A B)class B: virtual public A C)class B: public A virtual D)virtual class B: public A .C++设置虚基类的目的是 ( A ) A)消除二义性 B)简化程序 C)提高运行效率 D)减少目标代码 垂直访问时,保护成员的访问控制权限与 _公有 __成员相同。 利用继承能够实现 _代码复用 __。 这种实现缩短了程序的开发时间,促使开发人员复用已经测试和调试好的高质量软件。 派生类对基类的继承有三种方式 :__public__、 ___protected__ 和 ___private__。 多继承情况下,派生类的构造函数的执行顺序取决于 __定义 __派生类时所指定的各基类的顺序。 C++提供的 _多继承 __机制允许一个派生类继承多个基类,即使这些基类是相互无关的。 派生类可以调用其 _定义 ___中不具备的数据和操作。 对基类数据成员的初始化必须在派生类构造函数中的 __初始化列表 ___处执行。 如果类 Alpha 继承了类 Beta,则类 Alpha 称为 __派生 __类,类 Beta 称为 __基 __类。 己知下面的程序框架,按注释中的提示补充细节。 include class pla { protected: double distance。 ___//行星距太阳的距离 int revolve。 ___//行星的公转周期 public: pla(double d,int r) { distance=d。 revolve=r。 } }。 class earth:public pla { double circumference。 //地球绕太阳公转的轨道周长 public: //定义构造函数 earth(double d,int r),并计算地球绕太阳公转的轨道周长。 //假定 :circumnference=2*d* ___ earth(double d,int r): pla (d, r){__ circumnference=2*d*。 }___ //定义 show()函数显示所有信息 ___void show() { cout”distance is ” distance”miles, revolve is” revolve”days”endl。 cou” circumference is “ circumferenceendl。 }___ }。 void main() { earth ob(9300000,365)。 ()。 } 设置虚基类的目的是 __为了消除二义性 __,可通过 ____virtual_____标识虚基类。 1 若多继承时,多 个基类中拥有一个同名的成员,则 __不能 __用调整访问权限确定对该成员的访问。 1 根据基类的定义和测试程序,完成下面派生类的定义。 Class Point { public: Point(int I=0, int j=0){X=I。 Y=j。 } void Move(int xOff,int yOff){X+=xOff。 Y+=yOff。 } int GetX(){return X。 } int GetY(){return Y。 } private: int X,Y。 }。 class Rectangle :private Point { public: Rectangle(int x,int y,int w,int h)__:Point(x,y)___{_W = w。 H = h。 _ } void Move(int xOff,int yOff){_ Point:Move(xOff, yOff)。 __ } int GetX(){__return Point:GetX()。 __ } int GetY(){___return Point:GetY()。 __ } int GetW(){__return W。 __ } int GetH(){__return H。 __ } private: int W,H。 } include include void main() { Rectangle rect(1,2,3,4)。 (5,6)。 cout“The data of rect(X,Y,W,H):(“ ()“,”()“,” ()“,”()“)”endl。 1 多继承可以视为是 __单继承 __的扩展。 1 在划线处填上适当的语句,完成下列程序。 include class Point { public: point(double a,double b,double c){_X =a。 Y=b。 Z =c。 __} double Getx(){return X。 } double Gety(){return Y。 } double Getz(){return Z。 } private: __double X, Y。 _____ protected: __double Z。 _____ }。 class Line :_____public____Point { public: Line(double a ,double b,double c,double d)_:Point(a,b,c)_____{____K = d。 ___ } void show() { coutGetx()endl。 coutGety()““.endl。 coutGetz()““Zendl。 coutKendl。 }。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。