26 C++ 基础—函数

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;
}

猜你喜欢

转载自blog.csdn.net/su749520/article/details/80289437