第19章用类实现计算器
本章中,你将回顾类的知识,看几个重新实现的计算器类。
19.1 类的标记
从前面的章节中我们得知,类有两部分组成:类的声明,在模块头文件中;类的定义,在模块实现文件中。
简单类的声明(如aRequest),就可以说明定义类需要的大部分标记(如代码清单19-1所示)。
代码清单19-1 aRequest头文件
第1行、第2行和第51行与原来版本的头文件类似,用来避免编译器消息:
第4行、第5行和第49行把类的声明括在命名空间中。因此,如果其他的类库也声明了叫aRequest的类,那么将不会产生名字冲突。
第6行、第7行和第48行组成类声明的代码块,用关键字class标识是类的声明。
第10行~第21行声明枚举类型anOperator,它是类的一部分。
第27行~第31行和第35行声明的是主构造函数和复制构造函数。类没有声明默认构造函数。因此,定义aRequest Request就会引起如下的编译错误消息:
aRequest没有默认构造函数 ,这样可以保证aRequest的所有对象都能被theOperator和theOperand正确初始化。
第46行和第47行是myOperator和myOperand的定义。
第41行和第42行分别是myOperator和myOperand的getter函数。函数的类型为const,返回值为成员变量的当前值。const成员函数表明成员函数不会改变类中任何成员变量。
【责任编辑:
董书 TEL:(010)68476606】