首页 > 编程语言 >C++ 核心 3. 函数进阶

C++ 核心 3. 函数进阶

时间:2022-10-22 10:05:32浏览次数:46  
标签:进阶 int C++ 参数 默认 func 重载 函数

3 函数进阶

3.1 默认参数

语法:

返回值类型 函数名(参数=默认值){}

e:

int func(int a, int b=10, int c=100){
    return a+b+c;
}

注意事项: 1.默认参数应该在非默认参数后面。 错误示范: int func(int a, int b=10 ,int c)

2.函数声明和实现分开时,函数声明和函数实现只能有一个有默认参数。(防止声明和实现的默认参数值不一致,冲突)

int func2(int a=10, int b=10);

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

3.2 函数占位参数

函数参数只写数据类型,不写参数名:

void func(int a, int){
    cout << "in func" << endl;
}

现阶段用不到,(这个没名字的参数怎么用呢?),后面会用到。

3.3 函数重载

函数名可以相同,提高复用性。 重载条件:

  • 作用域相同
  • 函数名称相同
  • 函数参数不同(类型、个数、顺序)

注意:函数返回值不同不可以作为重载条件。

总之,不应该有二义性,编译器需要根据传入的参数决定唯一的函数。

void func(){
    cout << "func1"<< endl;;
}

void func(int a){
    cout << "func2"<< endl;;
}

函数重载注意事项

  • 引用作为重载条件
void func(int &a){
    cout << "func1"<< endl;;
}

void func(const int &a){
    cout << "func2"<< endl;;
}
  • 函数重载与默认参数
void func(int a){
    cout << "func1"<< endl;;
}

void func(int a, int b=10){
    cout << "func2"<< endl;;
}
//不行,如果调用
func(10);// wrong, 无法决定使用哪个函数。

func(1,2) // right,只能使用第二个参数。

标签:进阶,int,C++,参数,默认,func,重载,函数
From: https://blog.51cto.com/pigeon/5785646

相关文章

  • C++ 核心 4.1 类的封装
    4类和对象面向对象三大特性:封装、继承、多态万物皆对象。对象=属性+行为类是抽象的对象。比如路上有很多(具体的)车,但抽象出来都属于车。定义类的语法:class类名{......
  • C++ Grade Book System
    C++GradeBookSystemDefineandimplementagradebooksystem.Thegradebookmustusepolymorphismtomanageacollectionofassessmentsofdifferenttypes.......
  • C++中static关键字的作用总结
    static的含义static的含义解释为静止的,静态的,当然它在编程语言中也是相关的含义,接下来,让我们看看在C++语言中,static关键字修饰不同的类型时,它的具体含义是什么。static修饰......
  • C++并发编程实战 第二版 电子书 pdf
    作者:安东尼·威廉姆斯(AnthonyWilliams)出版社:人民邮电出版社出品方:异步图书原作名:C++ConcurrencyinAction,SecondEdition 链接:C++并发编程实战第二版 ......
  • C语言中的getchar、putchar函数
    getchar可以接受键盘上打印的字符,puchar可以进行输出字符比如:#include<stdio.h>intmain(){intch=getchar();putchar(ch);printf("%c\n",ch);return0;}运......
  • Lambda函数
    什么是Lambda函数Lambda函数也叫Lambda表达式,是匿名函数,就是没有名字的函数,和传统的函数不一样。Lambda表达式是C++11中引入的新概念,用于定义并创建匿名的函数对象。首先......
  • 3.Python 注释和函数使用
    注释三总:单行注释直接#+内容多行注释三个单引号括起来的内容指定编码注释可以指定文件的中文编码例:#作者:咸瑜#代码时间:2022/10/1715:57''''多行注......
  • C++三角形区域随机行走
    #include<stdio.h>#include<stdlib.h>#include<vector>#include<time.h>#include<algorithm>#include<iostream>usingnamespacestd;vector<vector<int>>a(4);int......
  • 致敬Excel基础函数(20):Datestring函数和Datevalue函数
    1概念Datestring函数的定义:将对应的日期转换为“年月日”的形式。Datevalue函数的定义:返回以字符串所表示的日期值所对应的序列号。2语法Datestring函数语法:​=DATESTRING(......
  • 实验3 数组、指针与现代C++标准库
    一.实验结论:1.实验任务5:Info.hpp:#include<iostream>#include<string>#include<iomanip>usingnamespacestd;classInfo{public:Info(){}Info(st......