August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
现在,我们实现Token_stream中的三个函数。如何表示一个Token_stream呢?也就是说,需要在Token_stream中存储什么数据才能完成相应的功能呢?放回Token_stream的任何单词都需要存储空间。但为了简单起见,这里规定每次只能放回一个单词,对我们的计算器程序(和其他许多类似的程序)来说这已经够用了。因此,我们只需要声明一个单词所需的存储空间和指示该存储空间是否被占用的值。
现在,我们可以来定义(“编写”)两个成员函数了,首先定义比较简单的putback()函数。putback()成员函数的功能是将其参数放回Token_stream的缓冲区中:
关键字void指出putback()函数不返回任何值。
当我们在类外定义一个成员时,必须指明这个成员属于哪个类,为此,需采用如下语法:
在前面的代码中,我们以这种方式定义了Token_stream的成员函数putback。
为什么我们要在类的外部定义一个成员呢?主要是为了保持代码清晰:类的定义主要说明类能够做什么。成员函数定义则指明如何做,因此,我们倾向于将其放在“别的地方”,避免和类定义混在一起分散注意。理想情况是,程序中的每个逻辑实体都很简短,能在屏幕上的一页内完整显示。如果将成员函数定义放在别处,是能做到这点的,但如果将其放在类的定义中(“类内”成员函数定义),将很难满足这个要求。 ...