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

Posted LC编程开发者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于C++类-带参数的构造函数的主要内容,如果未能解决你的问题,请参考以下文章

在c++中如何用new生成一个构造函数带参数的类数组?

C++的默认构造函数(待确认整理)

java怎么调用带参数构造函数

C++:调用无参数的构造函数为啥不加括号

两个构造函数(带 & 不带参数),无输入 -> 无参数运行。跳过上述类中的构造函数

C++一道题 跪求解答