C++primer第14章习题解答 .pdf

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++primer第14章习题解答 练习14.1:在什么情况下重载的运算符与内置运算符有所区别?在什么情况下重载的运算符⼜与内置运算符⼀样? 不同点: 重载运算符必须具有⾄少⼀个class或枚举类型的操作数。 重载运算符不保证操作数的求值顺序,例如对和||的重载版本不再具有“短路求值”的特性,两个操作数都要求值,⽽且不规定操作数的求值顺序。 相同点: 对于优先级和结合性级操作数的数⽬都不变。 练习14.2:为Sales_data编写重载的输⼊、输出、加法和复合赋值运算符的声明。 class Sales_data { friend std::istream operator(std::istream, Sales_data ); friend std::ostream operator(std::ostream, const Sales_data); public: Sales_data operator+=(const Sales_data); }; Sales_data operator+(const Sales_data, const Sales_data); 练习14.3:string和vector都定义了重载的==以⽐较各⾃的对象,假设svec1和svec2是存放string的vector,确定在下⾯的表达式中分别使⽤了哪个版本的 ==? (a) cobble == stone (b) svec1[0] ==svec2[0] (c)svec1 ==svec2 (d) svec[0] == stone (a)应⽤了C++内置版本的==,⽐较两个指针。(b) 应⽤了string版本的==。(c)应⽤了vector版本的==。(d)应⽤了string版本的==。 练习14.4:如何确定下列运算符是否应该是类的成员? (a) % (b) %= (c) ++ (d) - (e) (f) (g) == (h) () (a) %通常定义为⾮成员。 (b) %=通常定义为类成员,因为它会改变对象的状态。 (c) ++通常定义为类成员,因为它会改变对象的状态。 (d) -必须定义为类成员,否则编译报错 (e) 通常定义为⾮成员 (f) 通常定义为⾮成员。 (g) ==通常定义为⾮成员。 (h) ()必须定义为类成员,否则编译会报错。 练习14.5:在7.5.1节的练习7.40中,编写了下列类中的某⼀个框架 ,请问在这个类中应该定义重载的运算符吗?如果是,请写出来。 (a)Book (b)Date (c)Employee (d)Vehicle (e)Object (f)Tree #include iostream using std::ostream; using std::endl; class Date { public: Date() { } Date(int y, int m, int d) {year = y; month = m; day = d;} friend ostream operator(ostream os, const Date dt); private: int year, month, day; }; ostream operator(ostream os, const Date d) { const char sep = \t; os year: d.year sep month: d.month sep day: d.day endl; return os; } 练习14.6:为你的Sales_data类定义输出运算符。 class Sales_data { friend ostream operator(ostream os, const Sales_data item); //其他成员 }; ostream operator(ostream os, const Sales_data item) { const char *sep = ; os item.isbn() sep item.units_sold sep item.revenue sep item.avg

文档评论(0)

. + 关注
官方认证
内容提供者

专注于职业教育考试,学历提升。

版权声明书
用户编号:8032132030000054
认证主体社旗县清显文具店
IP属地河南
统一社会信用代码/组织机构代码
92411327MA45REK87Q

1亿VIP精品文档

相关文档