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, long long 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韦凯峰Linux编程学堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值