C++学习-函数

C++ 函数

目录

函数默认参数

#include<iostream>

using std::cout;
using std::endl;

int power(int n, int x=2); // x=2 是默认参数

int main() {
    cout << power(5) << endl; // 没有传 x 的值,用默认值 x=2
    cout << power(4, 3) << endl; // 传了 x 的值,用传的 x 的值
    return 0;
}

int power(int n, int x) {
    return n * x;
}

注意:默认参数只能放在形参列表的结尾,避免歧义。

引用传参

引用传参:& 紧跟在数据类型后面,相当于直接拿原件进行操作。

void swap(int& a, int& b) {
    int temp = a;
    a = b;
    b = temp; // 交换值
}

int main() {
    int m = 1, n = 99;
    swap(m, n);
    cout << m << '\t' << n; // 输出 99 1
    return 0;
}

函数重载

数量不同

int add(int a, int b) {
    return a + b;
}

int add(int a, int b, int c) {
    return a + b + c;
}

cout << add(1, 2) << endl;
cout << add(1, 2, 3) << endl;

编译器会根据参数数量选择对应的函数。

类型不同

string myAdd(int a, int b) {
    return to_string(a + b);
}

string myAdd(int a, string s) {
    return to_string(a) + s;
}

注意:有可能因为数量和类型相同而匹配错误,应避免歧义。

内联函数

内联函数:如果函数功能简单且反复调用,使用 inline 关键字减少调用开销。这是一个给编译器的建议,不是一定会被内联。

inline int getMax(int a, int b, int c) {
    return a > b ? (a > c ? a : c) : (b > c ? b : c);
}

int main() {
    cout << getMax(1, 2, 3) << endl;
    cout << getMax(4, 2, 3) << endl;
    cout << getMax(1, 5, 3) << endl;
    // 如果编译器接受建议,这些调用会在编译的时候直接展开成函数内容
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值