C++ 重载构造函数

  

 1、什么是重载构造函数?

   在C++语言中,重载构造函数是指类中的构造函数可以有多个,但是,每个构造函数的参数(数量)或(类型)是

  不相同的。而这样的(重载构造函数)有什么作用呢?

 

  我们可以举一个例子 ,例如:在一个游戏里面,有魔法师、战士等的角色,

  然后,在一个类中我们通过一个属性描述魔法攻击力,而另一个属性描述攻击力,

 

  然后,通过这个类去定义魔法师对象时,我们就可以通过构造函数传递一个值去初始化(魔法攻击力),

  但是,我们不需要初始化(攻击力)属性,因为,魔法师只使用魔法攻击。

 

  然后,通过这个类去定义战士对象时,我们就可以通过另一个构造函数传递一个值去初始化(攻击力),

  但是,我们不需要初始化(魔法攻击力)属性,因为,战士没有魔法攻击。

 

  所以,在上面的例子中我们就需要两个构造函数,而它们的参数部分是不一样,一个用于接收魔法攻击力,

  而另一个接收战士的攻击力,所以,重载构造函数就可以完成这样的工作了。

 

 2、 例子:

       class Human

       {
         public:
           int  Life;//生命值

           int  Attack;//攻击力

           int  Defend;//防御力

           int  Magic; //魔法攻击力(远程攻击)

           Human()   //默认构造函数

           {

           }

           Human(int Mag)  //重载构造函数Human必须与类名相同

           {
              Magic = Mag;   //通过参数Mag对魔法属性Magic赋值
              Life = 150;   //对生命值属性Life赋值
           }

           Human(int Ack,int Def)  //重载构造函数Human必须与类名相同

           {
              Attack = Ack;   //通过参数Ack对攻击力属性Attack赋值
              Life = 300;   //对生命值属性Life赋值
              Defend = Def;     //通过参数Def对防御力属性Defend赋值
           }

       };

      Human  Mag(350);  //定义魔法师对象Mag,并传递魔法值350

      Human  ZS(200,200);  //定义战士对象Mag,并传递攻击力与防御力值200

 

不要停留在理论学习上,尽快转到真实环境进行代码编写实践,请下载下方的训练环境。

>>>下载训练环境与使用说明(使用真实的开发环境,结合游戏闯关进行编程训练)