写在前面
听说过函数有默认值吗,想了一下,脑袋一团浆糊,好,今天来认识一下
名词解释
C++允许函数设置默认参数,在调用时可以根据情况省略实参。规则如下:
默认参数只能按照右到左的顺序
如果函数同时有声明、实现,默认参数只能放在函数声明中
默认参数的值可以是常量、全局符号(全局变量、函数名)
码上封口
将main.m 改为mian.mm 文件
#include <iostream>
using namespace std;
void display(int a = 10, int b = 20) {
cout << "a is " << a << endl;
cout << "b is " << b << endl;
}
int main() {
display();
display(1);
display(1,3);
}
看下打印结果:
a is 10
b is 20
a is 1
b is 20
a is 1
b is 3
是不是很厉害的样子,嗯嗯,当时我也是这么想的。
注意点
在文件里是不是可以重载一下函数,定义两个函数
void display(int a = 10) {
cout << "a is " << a << endl;
}
void display() {
cout << "display() " << endl;
}
此时会发现
display();
display(1);
这两个函数调用会报错"Call to 'display' is ambiguous",
这就是函数二义性,导致编译器不知道调用哪一个,建议优先选择使用默认参数。
可对比下第二讲的函数重载部分。
完整代码demo,请移步GitHub:DDGLearningCpp
当然C++大神就绕吧,非喜勿喷,毕竟这是个人的学习笔记📒
网友评论