网站大量收购独家精品文档,联系QQ:2885784924

面向对象设计习题技巧.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 22 面向对象程序设计中的数据隐藏指的是参考答案为:D   A.输入数据必须输入必威体育官网网址口令B.数据经过加密处理  C. 对象内部数据结构上建有防火墙  D.对象内部数据结构的不可访问性 [解析]输入数据必须输入必威体育官网网址口令和数据经过加密处理都不是面向对象程序设计的特征;对象内部数据结构上也不可能建有防火墙,所以它们都不是面向对象程序设计中所指的数据隐藏。面向对象程序设计系统中的封装单位是对象,对象之间只能通过接口进行信息交流,外部不能对对象中的数据随意地进行访问,这就造成了对象内部数据结构的不可访问性,也使得数据被隐藏在对象中。这就是面向对象程序设计中的数据隐藏所指。 下列各项中符合函数重载必须满足的条件的是参考答案为:D   A. 必须有不同的参数个数  B.对应的参数类型必须不相同  C. A和B必须同时满足  D.A和B只要???足一个即可 [解析]我们知道,在同一个作用域中,要实现函数重载必须满足的条件的是:① 有不同的参数个数;或者 ② 对应的参数有不相同的数据类型,即①和②中只要有一个满足就可以了。当然两者都满足更好,但这不是必须的。 3.下列带缺省值参数的函数说明中,正确的说明是   参考答案为:A   A.int Fun(int x,int y=2,int z=3);  B.int Fun(int x=1,int y,int z=3); C. int Fun(int x,int y=2,int z);  D.int Fun(int x=1,int y,int z=3);  [解析]在带缺省值参数的函数说明中,正确的说明应该是无缺省值的参数依次排列在参数表的左边,排完无缺省值的参数后,再依次排列带缺省值的参数。从所给出的四个选项来看,只有“int Fun(int x,int y=2,int z=3)”符合这条规定,其它的都不符合。 4.有如下的对类“CSample”的说明,其中( )是错误的。   class CSample {    参考答案为:A   A.int a=23;   B.CSample();     public:   C.CSample(int val);   D.~ CSample();  } [解析]在上面对类“CSample”说明中,“CSample()”和“CSample(int val)”是该类重载的构造函数、“~ CSample()”是该类的析构函数,这三个语句都是正确的。错误的语句是“int a=23”,因为它违反了在类的声明(不管是引用性声明,还是定义性声明)中都不能以赋值表达式的形式给它的数据成员进行初始化。 5.已知类A中的一个成员函数的说明如下:   void Set(A a);   则该函数的参数“A a”的含义是   参考答案为:C   A.指向A的指针为a   B.将变量a的地址赋给类A   C.类A对象引用a用作函数的形参   D.变量A与a按位与后作函数参数 [解析]因为A是一个类,所以“A a”表示a是类A的对象,但因为对象a的前缀了符号“”,则“a”表示是类A的对象引用。所以“A a”的含义是类A对象引用a用作函数的形参。 6.若类A和类B的定义如下:   class A {     public:     int i,j;     void get();   };   class B:A {      int i,j;     protected:       int k;     public:      void make();   };   void B::make() { k=i*j; }   则其中()是非法的表达式。     参考答案为:D   A.void get();   B.int k;   C.void make();   D.k=i*j;   [解析]对于给定的四项中,前三项都是正确的,只有第四项是错误的。因为,类B是类A的私有派生类(缺省访问类型),所以A中的公类型的数据成员在类B中成为了私有数据成员,但函数“void B::make()”既然是类B的成员函数,则既可访问类A中的公有数据成员,也能访问类B中的私有数据成员,则表达式“k=i*j;”造成了访问的二义性,即其中的i和j,到底是取自类A呢?还是取自类B呢? 7.下面的主程序中,语句( )是错误的。     class A {     int i;     public:     virtual void fun()=0;     A(int a) { i=a; }     };     class B {     int j;     public:     void fun() { cout”B::fun()\n”; }     B(int b,int c)

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档