大话C++??默认参数及其所引起的二义性
作者:网络转载 发布时间:[ 2012/8/2 10:38:02 ] 推荐标签:
先来了解默认参数是什么吧!
默认参数是指在定义或声明函数时,为参数指定默认值,在调用函数时,可以传递参数,也可以不传递参数;如果没有传递参数,则在函数中使用默认参数的默认值!
对于默认参数不要单纯的错误的理解为是函数的参数带有一个默认值,其实他强调的不仅是参数的默认的值还有如果没有传递参数可以使用默认的参数;也是说你调用函数时可以不带参数,却仍然能正常运行(这是用的是默认参数的默认值);因为编译器会自动调用默认参数。
典型的是在带默认参数的构造函数:
比如说你定义了一个class A;A有两个private数据成员int a;和int b;如果不是用默认的构造函数的话代码如下:
A(); //不带参数的构造函数
A(inta,int b);//带参数的构造函数
如果你在新建对象时,如初始化
A a1; //初始化调用A();
A a2(3,4); //赋值调用A(int a,int b);
而如果使用带默认参数的构造函数时不需要不带参数的构造函数了;如下:
A(int a=0,int b=0);
则不需要在写出不带参数的构造函数了;因为你如果这样定义对象:
A a1; //调用的还是A(inta=0,int b=0)因为编译器不再产生默认的构造函数A();而是直接调用A(int a=0,int b=0)
//因为没有实参的构造函数,是默认构造函数,参数指定了默认值的构造函数也是默认构造函数,一个类只能有一个默认构造函数
这里要说明的是一个类在写了默认构造函数之后不会自动生成默认的构造函数,如果你写的是带默认参数的构造函数,则其实已经有了默认构造函数,如果在定义一个会出现在A()会出错了!看看下面的代码吧!
例如:
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11