Skip to Content
C++程序设计:原理与实践(基础篇)(原书第2版)
book

C++程序设计:原理与实践(基础篇)(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
Pearson
Content preview from C++程序设计:原理与实践(基础篇)(原书第2版)

13.5.1 对const向量重载运算符

到目前为止,operator[]()的定义存在一个问题:它不能用于const vector对象。例如:

其原因在于我们的vector::operator[]()可能会潜在地改变vector对象。即使它实际上没有改变,编译器仍会认为这是一个错误,因为我们“忘了”将这一情况告诉编译器。解决方法是再定义一个const成员函数(参见9.7.4节)的版本。这很容易实现:

对const版本,我们显然不能返回一个double&,而应返回一个double值。返回一个const double&的效果是一样的,但由于double只是一个很小的对象,没有必要返回引用(见8.5.6节),因此我们决定以传值方式返回它。现在,我们可以编写如下代码:

由于vector对象常常通过const引用的方式传递,因此为operator[]()实现const版本是十分必要的。

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉

Publisher Resources

ISBN: 9787111562252