- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 福建省福州市2023届高三下学期高考模拟4月普通高中毕业班质量检测化学精品.pdf
- 2023年江西计算机等级考试考试真题卷(3) .pdf
- 湖南省常德市初中中考英语试题(Word版,含答案) .pdf
- 语文中考模拟考试(有答案解析) .pdf
- 2023年浙江省台州市普通高校对口单招综合素质自考真题(含答案).pdf
- 理综化学高考真题及答案 .pdf
- 山东省潍坊市2022-2023学年高二年级上学期期末达标语文试题.pdf
- 河南省三门峡市高职单招2023年生态学基础模拟练习题三附答案 .pdf
- 2023年环境影响评价工程师之环评技术导则与标准通关考试题库带答案解析精品.pdf
- 2023年山东省潍坊市普通高校高职单招综合素质测试题(含答案) .pdf
文档评论(0)