0


C++类-带参数的构造函数

带参数的构造函数

          在上面的例子中,我们在student类中定义一个无参的构造函数,如下:

student(){

    cout << "调用无参构造函数,设置默认值" <<endl;

    strcpy(name, "wkf");

    strcpy(addr, "www.mylinux.vip");

    number = 13926572996;

}

   在函数体中对各成员变量赋初值。这种方式使student类的每一个对象都得到同一组初值,但是,有时用户希望对不同的对象赋予不同的初值,这时就无法使用上面的办法来解决了。

   可以采用“带参数的构造函数”,在调用不同对象的构造函数时,将不同的数据传递给构造函数,以实现不同的初始化。构造函数定义的一般格式为:

*构造函数名(类型*1 形参1*类型2 形参2* ... ...**

注意:构造函数没有返回类型。

   用户是不能调用构造函数的,因此,无法采用常规的调用函数的方法给出实参,例如 func(a, b); ,实参是在定义对象的时候给出的,定义对象的一般格式为:

类名对象名(实参1实参2,** ... ...**

例如,有2个学生,他们的年龄、性别、名字都不一样。那么,就需要定义带参数的构造函数,在定义学生对象的时候,给它们设置不同的属性。测试例子如下:

   程序运行结果如下:

   带参数的构造函数,定义如下:

student(char* pn, char* pa, longlong n)

   在定义对象的时候,给对象设置参数,调用对应的构造函数,例如:

student stud("wkf", "www.mylinux.vip", 13926572996);

   此时,调用构造函数,在 stud后面接的参数,就是传递给构造函数的参数,如下:

pn = "wkf";

pa = "www.mylinux.vip";

number = 13926572996;

   然后,再调用构造函数,给对象的具体成员变量赋值。所以,可以知道:

(1) 定义类对象的时候,给类对象设置的参数,就是传递给构造函数的参数。

(2) 自己定义构造函数,可以方便地实现对不同的对象进行不同的初始化。例如,定义stud, stud1对象的时候,可以给对象设置不同的数据。

韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip

标签:

本文转载自: https://blog.csdn.net/feng19870412/article/details/117731804
版权归原作者 Linux编程学堂 所有, 如有侵权,请联系我们删除。

“C++类-带参数的构造函数”的评论:

还没有评论