C++基础-3-函数

3. 函数

3.1 函数默认参数

 1 #include<iostream>
 2 using namespace std;
 3 
 4 //函数的默认参数
 5 //自己传参,就用自己的,如果没有,就用默认值
 6 int func(int a, int b = 20, int c = 30)
 7 {
 8     return a + b + c;
 9 }
10 
11 //注意:
12 //1.如果某个位置有了默认参数,那么从这个位置往后,从左到右必须有默认参数
13 //2.如果函数声明中有默认参数,函数实现就不能有默认参数
14 //即,声明和实现只能一个有默认参数
15 int func2(int a = 10, int b = 20);
16 
17 //int func2(int a = 20, int b = 30) {
18 //    return a + b;
19 //}
20 // 报错,重定义默认参数
21 
22 int main() {
23 
24     cout << func(10, 20, 30) << endl;
25     cout << func2(10, 20) << endl;
26 
27     system("pause");
28 
29     return 0;
30 }
31 
32 //总结
33 //在C++中,函数的形参列表中的形参可以有默认值的
34 //语法:返回值类型 函数名 (参数=参数默认值){}
35 //

3.2 函数占位参数

 1 #include<iostream>
 2 using namespace std;
 3 
 4 //函数占位参数,占位参数也可以有默认参数
 5 void func(int a, int = 10) {
 6     cout << "a = " << a << endl;
 7 }
 8 
 9 int main() {
10 
11     int a = 10;
12     int b = 20;
13 
14     func(a, b);
15 
16     system("pause");
17 
18     return 0;
19 }
20 
21 //总结
22 //形参列表可以有占位参数,用作占位,调用函数时必须填补该位置
23 //语法:返回值类型 函数名(数据类型){}

3.3.1 函数重载概述

#include<iostream>
using namespace std;

//函数重载
//让函数名相同,提高复用性

void func() {
    cout << "func的函数调用" << endl;
}

void func(int a) {
    cout << "func的函数调用!" << endl;
}


int main() {

    func(3);

    system("pause");

    return 0;
}


//总结
//作用:函数名可以相同,提高复用性
//函数重载满足条件:
//1.同一个作用域下
//2.函数名称相同
//3.函数参数类型不同 或者 个数不同 或者 顺序不同
//注意:函数的返回值不可以作为函数重载的得条件

3.3.2 函数重载注意事项

#include<iostream>
using namespace std;

//函数重载注意事项
//1.引用作为重载条件
void func(int& a) {  // int &a = 10; 不合法的
    cout << "func (int &a)的调用" << endl;
}

void func(const int& a) {  // const int &a = 10; //会做转换
    cout << "func (const int &a)的调用" << endl;
}

//2.函数重载遇到默认参数
void func2(int a, int b = 10) {
    cout << "func2 (int a, int b)的调用" << endl;
}

void func2(int a) {
    cout << "func2 (int a)的调用" << endl;
}

int main() {

    int a = 10;
    func(a); // func (int &a)的调用

    func(10); // func (const int &a)的调用

    //func2(10); //当函数重载碰到默认参数,出现二义性,报错,编程时尽量避免

    system("pause");

    return 0;
}

//总结
//引用作为重载条件
//函数重载碰到默认参数

参考:《黑马程序员》C++教程

posted @ 2022-04-30 20:36  Thomas_kaka  阅读(84)  评论(0)    收藏  举报