C++ 带参数的构造函数

 

  在接下来的时间里面,我们准备学习,带有参数的“构造函数”。      

 

  那么,我们为什么要使用带有参数的构造函数呢

 

  首先,我们可以举一个例子,例如:在一个游戏里面,假设它有多个不同类型的角色,而不同的角色,它们的生命值,攻击力,防御力等的属性都是不一样的,所以,在定义不同的角色对象时,我们就可以通过带有参数的构造函数传递相应的参数值,这样,就可以在定义不同的角色对象时,一并把不同的属性值设置完毕。

 

 

 

当我们了解了为什么要使用带有参数的构造函数以后,我们就来看看,它在C++中定义的格式,格式如下:

 

构造函数的名字(参数类型 参数名1,参数类型 参数名2,... 参数类型 参数名n)

{

 构造函数的主体部分

}

 

格式与特点分析:

(1)构造函数的名字必须与对应的“类名”相同。

(2)一对小括号,格式要求不能省略。

(3)一对大括号,格式要求不能省略。

(4)大括号之间就是构造函数的主体部分,需要进行初始化赋值的属性就可以写在这里。

(5)构造函数在对象定义时会自动调用,所以,它里面的代码就会被自动执行。

(6)参数部分的定义与C语言函数的参数部分定义是一样的,都是需要说明参数的类型与参数名字,各参数定义之间通过逗号分隔,参数的数量无有限制。

 

   通过上面的分析,大家就可以了解到,带有参数的构造函数的定义格式,其实,与前面学习的构造函基本上是类似的,只是多了参数的部分。

 

 

 

接下来,我们就定义一个角色类,并在类中定义一个带有参数的构造函数,代码如下:

 

class Role

{

 public:

 int  Life;//生命值

 int  Attack;//攻击力

 int  Defend;//防御力

 

 Role(int L,int Ack,int Def) //带有参数的构造函数Role必须与类名相同

 {

  //下面3行代码是需要进行赋初化的属性,而3个属性值分别来自于参数L,Ack以及Def

  Life = L;

  Attack = Ack;

  Defend = Def;

 }

};

 

Role  R1(5,2,3);

 

代码分析:

(1)定义了一个角色对象R1

 

(2)由于类中添加了带有参数的构造函数Role,所以,在定义R1对象的同时会自动调用带参的构造函数

Role(int L,int Ack,int Def),所以,就需要在对象R1定义的同时传递参数,而传递参数的格式就是在对象名R1后添加一对小括号,而括号中就填入要传递的参数值,各参数值之间以逗号分隔。

 

(3)在对象R1定义时,参数值就可以传递到构造函数的参数中,即参数“L”接收参数值“5”,参数“Ack”接收参数值“2”,参数“Def”接收参数值“3”,然后,再根据构造函数中的代码分别赋值给属性Life,Attack,Defend,所以,R1对象的生命值属性Life中的值为5,攻击力属性Attack中的值为2,防御力属性中Defend中的值为3。

  

 

  通过上面的学习,相信大家对带参构造函数的定义与使用有了一个初步了解,但是,如何灵活地运用这个知识点呢?那么,我们就要通过下方的按钮进入到游戏中,然后,运用该知识点去完成任务,这样,才可以加深大家对该知识点的理解和运用,以及“尽快进入到编程的状态”

 

  要达到灵活运用,是需要通过不停地反复训练才可以做到,所以,不要停留在理论规则上面,快动起来吧!


 

(通过游戏模式学习与训练,需要在电脑上运行)

进入游戏学习与训练