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
不要停留在理论学习上,尽快转到真实环境进行代码编写实践,请下载下方的训练环境。
>>>下载训练环境与使用说明(使用真实的开发环境,结合游戏闯关进行编程训练)
|