C++类-使用默认参数的构造函数

Posted LC编程开发者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++类-使用默认参数的构造函数相关的知识,希望对你有一定的参考价值。

使用默认参数的构造函数

       构造函数中的参数的值即可以通过实参传递,也可以指定为某些默认值,在介绍函数的定义时,函数的参数,可以设置默认值。那么,通过这种方式,可以在构造函数中设置参数的默认值,用这样的方法来实现初始化。

改进上面分析的student类,构造函数改用含默认值的参数,测试代码如下:

程序运行结果如下:

       可以看到,在student类中只定义了一个构造函数,在构造函数的参数列表中,提供了默认值。如下:

student(char* pn="wkf", char* pa="china", long long n=168);

       那么,定义stud变量的时候,如下:

student stud;

       此时,student类已经定义构造函数,编译器不再提供默认构造函数。那么,就调用student

类中的构造函数:

student(char* pn="wkf", char* pa="china", long long n=168);

       那么,使用student类构造函数中携带的默认参数值。相当于:

student stud("wkf", "china", 168);

       所以,给stud对象设置了默认的构造函数参数。

       那么,在定义构造函数时,函数参数提供默认值。当没有给参数传递实参时,就采用默认的参数值。

       而且,也可以给构造函数传递参数,例如:

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

       此时,定义了stud1对象,给调用的构造函数设置参数。所以,不使用构造函数定义的默认参数值。

归纳总结如下:

(1) 应该在什么地方指定构造函数的默认参数?应该在声明构造函数时指定默认,而不能只在定义构造函数时指定默认值。在声明构造函数时指定默认参数值,让用户知道在建立对象时怎么样使用默认参数。

(2) 如果构造函数的全部参数都指定了默认值,那么,在定义对象时可以给一个或几个实参,也可以不给出实参。

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

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

C++ 构造函数的默认参数[关闭]

为啥 C++ 构造函数在继承中需要默认参数?

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

C++ 没有合适的默认构造函数(无参数构造函数)

C++知识分享:C++类特殊成员函数

构造函数中的默认参数--C++