第11章运算符重载习题解答.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章运算符重载习题解答

运算符重载 一.单项选择题 1.下列运算符中, 运算符在C++中不能重载。 A.?: B.+ C. D.= 解:C++中不能被重载的运算符有:·,一,::,?:。本题答案为A。 2. 下列运算符中, 运算符在C++中不能重载。 A. B.[] C.:: D.new 解:c++中不能被重载的运算符有: ·,·+,::,?:。本题答案为c。 3. 下列关于运算符重载的描述中, 是正确的。 A.运算符重载可以改变操作数的个数 B.运算符重载可以改变优先级 C.运算符重载可以改变结合性 D.运算符重载不可以改变语法结构 解:运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算程的语法结构。本题答案为D。 4.友元运算符objlobj2被C++编译器解释为 。 A.operator(objl,obj2) B.(obj1,obj2) C.obj2.operator:(obj1) D.objl.operator(obj2) 解:重载为友元函数的运算符的调用形式如下: operator运算符(参数1,参数2) 等价于:参数1运算符参数2 本题答案为A。 5.现需要对list类对象使用的逻辑运算符“==”重载,以下函数声明 是正确的。 A、list list::operator==(const list a); B、list list::operator==(const list a); C、bool list::operator==(const list a); D、bool list::operator==(const list a); 6. 以下类中分别说明了“+=”和“++”运算符重载函数的原型。如果主函数中有定义:fun m,c,d;,那么,执行语句c=m++; 时,编译器把m++解释为: (33) A) c.operator++(m); B) m=operator++(m); C) m.operator++(m); D) operator++(m); class fun { public: .. .. .. fun operator +=(fun ); friend fun operator ++(fun ,int); }; 答案:D 7. 在第33题中,当执行语句d+=m; 时,C++编译器对语句作如下解释: (34) A. d=operator+=(m); B. m=operator+=(d); C. d.operator+=(m); D. m.operator+=(d); 答案:C 8. 设有以下类定义,其中说明了“+”运算符重载函数的原型。这是一个友元函数,当类外有语句a=b+c;访问这个友元函数时,C++编译器把对语句a=b+c;解释为: operator +(b,c) 其中: (35) A. a,b,c都必须是Com的对象 B. a,b都必须是Com的对象 C. a,c都必须是Com的对象 D. b,c都必须是Com的对象 class Com { ... ... friend Com operator +(... ...); }; 答案:B 二.填空题 1.利用成员函数对双目运算符重载,其左操作数为 ,右操作数为 。 解:将双目运算符重载为类的成员函数时,由于this指针在每次非静态成员函数操作对象时都作为第一个隐式参数传递给对象,因此它充当了双目运算符的左操作数,而该成员函数的形参则表示双目运算符的右操作数。本题答案为:this指针成员函数参数。 2. 运算符重载仍然保持其原来的优先级、 和 。 解:运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构。本题答案为:结合性语法结构。 3. 为了满足运算符“+”的可交换性,必须将其重载为 。 解:以友元函数方式重载运算符可满足运算符“+”的可交换性,因为两个操作数都作为参数,例如,有以下程序: #includeiostream.h class Sample { int n; public: Sample(){} Sample(int i){n=i;} } Sample operator+(sample s1,Sample s2) { return sample

文档评论(0)

zhuwenmeijiale + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档