💕学习目标
学习默认参数、函数重载的使用
🎈学习内容
💖默认参数: 💖
在函数调用中省略了实参自动调用的一个值
好处:
提高使用函数的灵活性
在给函数形参加上了默认值,但在函数调用时给实参重新赋值,那么就会忽略默认值,例如,int func(int a,int b=5){}
调用时,func(4,10),那么会使用10而非5;
注意事项:
1、如果一个函数的一个形参有了默认值,那么后面所有形参都应该赋予默认值,即默认值只能从右往左赋值
2、把默认参数放到函数原型中
突出:int getsum(int a,int) 占位参数
🎁函数重载: 🎁
重载:函数或方法拥有相同的的名称,但参数列表不相同的情况,即同名不同参的函数或方法叫做重载
ex:
void func();
void func(int a,int b);
void func(double a,int b);
注意:函数声明类型不同无法重载;即int func();void func();两者同时存在会报错
函数重载:编译器采用了一种技术,name decoration(名称修饰)|| name mangling (名称矫正)
🧨学习代码
默认参数😎
#include<iostream>
using namespace std;
int getsum(int a, int b) {
return a + b;
}
int getsum1(int a, int b=5) {//默认参数使用,但必须按顺序初始化,不能int a,int b=5,int c ,int d=10
return a + b;
}
//int getsum(int a,int) 占位参数
int main() {
int sum = getsum(1, 2);
cout << "sum=" << sum << endl;
int sum1 = getsum1(1);//默认参数使用
cout << "sum=" << sum1<< endl;
return 0;
}
函数重载😉
#include<iostream>
using namespace std;
//函数重载,参数类型,数目,顺序不同即可重载函数,但注意函数返回类型不同不能重载,比如int func()会报错
void func() {
cout << "func()被调用了" << endl;
}
//void func(int a) {//主函数中调用func(10)辨认不出是该int 还是const int& a
// cout << "func(int)被调用了" << endl;
//}
void func(double a) {
cout << "func(double)被调用了" << endl;
}
void func(int& a) {//两个func如果不加&的话,调用报错
cout << "func(int&)被调用了" << endl;
}
void func(const int& a) {
cout << "func(const int&)被调用了" << endl;
}
int main() {
func();
func(10);
func(3.14);
int num = 10;
func(num);
return 0;
}
🤞代码实现
默认参数:
函数重载: