19.6 把函数的内容移入成员函数
实现anAccumulator时,我们稍微做了一下修改就把Accumulator()函数的内容移到了Apply()函数。下一步,我们看一下aController的头文件和实现文件,其中包含了原来Calculator()函数的大部分内容,如代码清单19-4和代码清单19-5所示。
代码清单19-4 aController的头文件
aController的头文件简单易懂,我们直接看一下aController的构造函数,如代码清单19-5所示。
代码清单19-5 aController的构造函数
aController没有默认构造函数,所以必须使用这个构造函数才能创建aController。它具有theExternalInterface、theAc- cumulator和theTape三个参数,都使用传引用的方式。在aController头文件的第25行~第27行可以看到,成员变量声明的类型是引用。
前面讲过,编译器不允许给已经定义的引用再次赋值。第25行~第27行只是引用的声明,还没有被定义,直到控制流到达构造函数时,引用才会被定义。在实现的第16行~第18行,我们用构造函数的初始化列表初始化引用。
【责任编辑:
董书 TEL:(010)68476606】