1. 引用作为函数的形参
1.1 引用
int a = 0;
// b 是 a 的引用,别名
int &b = a;
1.2 引用作为函数的形参
传统的 swap1 无法进行数字交换,但是swap2使用了引用作为形参则可以
void swap1(int a, int b) {
int temp = a;
a = b;
b = temp;
}
// 引用在函数的应用
void swap2(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
int main(){
int x = 1;
int y = 2;
swap1(x, y);
cout<<"swap1 x : y = " << x<< " : " << y << endl;
swap2(x, y);
cout<<"swap2 x : y = " << x<< " : " << y << endl;
return 0;
}
1.3 避免大结构体的拷贝的发生
typedef struct {
int a;
int b[1000];
}BigStruct;
// 避免大结构体的拷贝的发生
void func(const BigStruct& mBigStruct) {
// xxxx
}
2.函数的默认参数
#include<iostream>
using namespace std;
// 形参默认值
void move(int step = 1, int delta = 20) {
}
int main(){
// 调用方法
move(2, 40);
move(2);
move();
return 0;
}
3.函数的重载
相同函数名的不同类型函数
int add(int a, int b) {
return a + b;
}
float add(float a, float b) {
return a + b;
}
4.函数的模板
创建一个通用函数, 其函数返回值类型和形参不具体指定,用一个虚拟类型代替,但是不常用,重点是后续的类模板
#include<iostream>
using namespace std;
template <typename T>
T add(T a,T b)
{
return a + b;
}
int main(){
add(10, 20);
return 0;
}