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版)

12.10 this指针

注意,在我们的每个链表函数中,都使用一个Link*作为第一个参数,并访问这个对象中的数据。我们把这种函数定义为成员函数。我们是否可以通过将操作变为成员函数来简化Link(或链接的使用)呢?我们是否可能令指针私有,以便只有成员函数能够访问它们呢?这些都是可以办到的:

这看起来是很有前途的方法。对于不改变Link状态的操作,我们将它们定义为const成员函数。我们增加了(非修改性)函数next()和previous(),从而用户可以遍历链表(的Link)——这两个函数现在是必要的,因为直接访问succ和prev被禁止了。我们仍将value定义为一个公有成员,因为(到目前为止)我们还没有理由不这样做——它“只是数据”。

现在尝试实现Link::insert(),我们可以赋值我们之前编写的全局函数insert()并适当修改它:

但我们如何获得调用Link::insert()的那个对象的指针呢?如果没有语言的帮助,我们是办不到的。但是,在每个成员函数中,标识符this都是指向调用此成员函数的对象的指针。我们可以简单地使用this而不再使用p: ...

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