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

9.4.4 定义成员函数

到目前为止,我们已经以接口设计者和用户的角度考察了Date,但我们迟早要实现这些成员函数。第一步,我们先给出Date类声明的一个重新组织过的子集,它将公有接口放在最前面,这也是常用的风格:

人们把公有接口放在类的开始,是因为接口是大多数人最感兴趣的。理论上,用户无须了解类的实现细节,只需知道接口即可。实际上,我们通常会有好奇心,会快速浏览一下类的实现,看看它是否合理,我们是否能从中学到一些技术。但是,除非是实现者,否则我们会倾向于在公有接口上花更多的时间。编译器并不关心类函数和数据成员的顺序,你愿意以什么样的顺序来声明它们,编译器都能接受。

当我们在类外定义一个成员时,需要指明它是哪个类的成员,这可通过class_name::member_name方式来实现:

符号:y{yy},m{mm},d{dd}就是类成员初始化的语法,称为初始化列表。当然也可以这样写:

但后一种写法,原则上讲,是先用默认值对成员进行了初始化,然后又对它们进行了赋值。而且这种写法的一个潜在问题是,我们有可能无意地在成员初始化之前使用它们。:y{yy},m{mm},d{dd}这种方式更直接地表达了我们的意图。两种写法之间的区别与下面两段代码之间的区别是一样的: ...

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