龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC++深入详解:构造函数[图]

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
按下键盘上的F7功能键编译例2-5的代码,然后按下键盘上的Ctrl+F5执行程序,出现如图2.10所示的运行结果。 从图中可以看到,输出了两个很大的负数。这是因为在构造pt对象时,系统要为

  按下键盘上的F7功能键编译例2-5的代码,然后按下键盘上的Ctrl+F5执行程序,出现如图2.10所示的运行结果。

  从图中可以看到,输出了两个很大的负数。这是因为在构造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();
  }

  然而,对于我们定义的init函数,在编写程序时仍然有可能忘记调用它。那么,能不能在我们定义pt这个对象的同时,就对pt的成员变量进行初始化呢?在C++当中,给我们提供了一个构造函数,可以用来对类中的成员变量进行初始化。

  C++规定构造函数的名字和类名相同,没有返回值。我们将init这个函数删去,增加一个构造函数point。这时程序的代码如例2-7所示,其中加灰显示的部分为新添加的代码。

精彩图集

赞助商链接