4.函数的参数默认值

4.函数-参数默认值


4.1 知识点

函数语法复习

//  1     2     3                  
//void 函数名(参数类型 参数1, 参数类型 参数2......)
//{
//       4
//    return 返回值;
//}
  • 返回值:如果没有返回值,填 void,也可以填写任意类型的变量。
  • 函数名:可以使用帕斯卡命名法、驼峰命名法等。
  • 参数:可以有 0 到多个参数。
  • 返回值不是 void:必须有 return,且返回对应类型的内容。return 语句会打断函数执行并直接返回结果,后面的代码将不再执行。

参数默认值

带默认值的参数通常称为“可选参数”。
作用是:当调用函数时可以不传入某些参数,未传的参数会使用默认值。

函数定义

void speak(string str = "韬老狮");

void speak2(string a = "123", int i = 0, float f = 0.5f, char c = 'A', string s2 = "sss");

void speak3(int i, string a = "123", float f = 0.5f);

void speak4(int i, string a = "123", float f = 0.5f)
{
    cout << a << endl;
    cout << i << endl;
    cout << f << endl;
}

函数声明

void speak(string str)
{
    cout << str << endl;
}

void speak2(string a, int i, float f, char c, string s2)
{
    cout << a << endl;
    cout << i << endl;
    cout << f << endl;
    cout << c << endl;
    cout << s2 << endl;
}

void speak3(int i, string a, float f)
{
    cout << a << endl;
    cout << i << endl;
    cout << f << endl;
}

注意事项

  • 声明时可以带有默认值,但定义时不能带默认值(除非声明和定义一起完成)。
  • 每个参数都可以有默认值,支持多个参数同时使用默认值。
  • 如果要混用可选参数,必须将它们放在普通参数的后面。

函数使用

speak("韬老狮,我爱你"); // 输出: 韬老狮,我爱你
speak(); // 输出: 韬老狮

speak2(); 
// 输出:
// 123
// 0
// 0.5
// A
// sss

speak2("韬老狮123", 2); 
// 输出:
// 韬老狮123
// 2
// 0.5
// A
// sss

speak3(3); 
// 输出:
// 123
// 3
// 0.5

speak3(4); 
// 输出:
// 123
// 4
// 0.5

4.2 知识点代码

Lesson04_函数_参数默认值.cpp

#include <iostream>
using namespace std;

void speak(string str = "韬老狮");

void speak2(string a = "123", int i = 0, float f = 0.5f, char c = 'A', string s2 = "sss");

void speak3(int i, string a = "123", float f = 0.5f);

void speak4(int i, string a = "123", float f = 0.5f)
{
    cout << a << endl;
    cout << i << endl;
    cout << f << endl;
}

int main()
{
    std::cout << "参数默认值\n";

    speak("韬老狮,我爱你");//韬老狮,我爱你
    speak();//韬老狮

    speak2();
    //123
    //0
    //0.5
    //A
    //sss
    speak2("韬老狮123", 2);
    //韬老狮123
    //2
    //0.5
    //A
    //sss

    speak3(3);
    //123
    //3
    //0.5

    speak3(4);
    //123
    //4
    //0.5
}

#pragma region 知识点一 函数语法复习

//  1     2     3                  
//void 函数名(参数类型 参数1, 参数类型 参数2......)
//{
//       4
//    return 返回值;
//}
//1.返回值,没有返回值填void 可以填写任意类型的变量
//2.函数名,帕斯卡命名法、驼峰命名法等
//3.参数可以是0~n个
//4.如果返回值不是void 那么必须有return对应类型的内容  return可以打断函数语句块中的逻辑 直接停止后面的逻辑

#pragma endregion

#pragma region 知识点二 参数默认值

//有参数默认值的参数 一般称为可选参数
//作用是 
//当调用函数时可以不传入参数,不传就会使用默认值作为参数的值
void speak(string str)
{
    cout << str << endl;
}

void speak2(string a, int i, float f, char c, string s2)
{
    cout << a << endl;
    cout << i << endl;
    cout << f << endl;
    cout << c << endl;
    cout << s2 << endl;
}

void speak3(int i, string a, float f)
{
    cout << a << endl;
    cout << i << endl;
    cout << f << endl;
}

//注意:
//1.声明时带有默认值就行了,定义不能带默认值,否则报错(除非声明和定义一起完成)
//2.支持多参数默认值 每个参数都可以有默认值
//3.如果要混用 可选参数 必须写在 普通参数后面

#pragma endregion

4.3 练习题

在使用参数默认参数(可选参数)时的注意事项是什么?

  1. 声明时带有默认值就行了,定义不能带默认值,否则报错(除非声明和定义一起完成)。
  2. 支持多参数默认值,每个参数都可以有默认值。
  3. 如果要混用可选参数,必须写在普通参数后面。

可选参数存在的意义是什么?

  1. 增强代码的灵活性,我们可以选择性地传递参数。
  2. 简化函数调用,减少冗余代码,对于一些非必要的参数,可以避免每次调用函数时重复提供相同的值。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏