从图中可以看到,输出了两个很大的负数。这是因为在构造pt对象时,系统要为它的成员变量x和y分配内存空间,而在这个内存空间中的值是一个随机值,在程序中我们没有给这两个变量赋值,因此输出时就看到了如图2.10所示的结果。这当然不是我们所期望的,作为一个点的两个坐标来说,应该有一个合理的值。为此,我们想到定义一个初始化函数,用它来初始化x和y坐标。这时程序的代码如例2-6所示,其中加灰显示的部分为新添加的代码。
图2.10 EX03程序的运行结果
例2-6
#include <iostream.h> class point { public: int x; int y; void init() { x=0; y=0; } void output() { cout<<x<<endl<<y<<endl; } }; void main() { point pt; pt.init(); pt.output(); } |
C++规定构造函数的名字和类名相同,没有返回值。我们将init这个函数删去,增加一个构造函数point。这时程序的代码如例2-7所示,其中加灰显示的部分为新添加的代码。