1、函数的概述
作用:将一段经常使用的代码封装起来,减少重复代码。 一个较大的程序,一般分成若干个程序块,每个模块实现特定的功能。
2、函数的定义
函数的定义主要有5个步骤:
- 返回值类型
- 函数名
- 参数列表
- 函数体语句
- return 表达式
2.1语法:
返回值类型 函数名(参数列表){
函数体语句
return 表达式
}
2.2示例
示例写一个加法函数
int add(int a, int b) {
int c = a + b;
return c;
}
3、 函数的调用
功能:使用定义好的函数 语法:函数名(参数)
示例:
#include <iostream>
using namespace std;
int add(int a, int b) {
int c = a + b;
return c;
}
int main() {
int a = 10;
int b = 20;
int c = add(a, b);
cout << c << endl;
system("pause");
return 0;
}
4、函数声明
作用:告诉编译器函数名称以及如何调用函数,函数的实际主体可以单独定义。
注意:函数的声明可以有多次,但是定义只能有一次。
示例:
#include <iostream>
using namespace std;
int add(int a, int b);
int add(int a, int b) {
int c = a + b;
return c;
}
int main() {
int a = 10;
int b = 20;
int c = add(a, b);
cout << c << endl;
system("pause");
return 0;
}
5、函数的分文件编写
作用:让代码结构更加清晰
代码分文件编写一般有4个步骤 1.创建后缀名为 .h 的头文件 2.创建后缀名为 .cpp 的源文件 3.在头文件中写函数的声明 4.在源文件中写函数的定义
示例: 头文件:
#pragma once
#include <iostream>
using namespace std;
int add(int a, int b);
源文件:
#include "add.h"
int add(int a, int b) {
int c = a + b;
return c;
}
调用文件:
#include <iostream>
#include "add.h"
using namespace std;
int main() {
int a = 10;
int b = 20;
int c = add(a, b);
cout << c << endl;
system("pause");
return 0;
}
6、函数的参数
6.1、函数的默认参数
在c++中,函数的形参是可以有默认值的 语法: 返回值类型 函数名(参数 = 默认值){ }
示例:
int add(int a, int b = 10, int c = 20){
return a + b + c
}
注意事项:
- 如果某个位置参数有默认值,那么从这个参数往后,从左到右,必须都要有默认值;
- 如果函数声明有默认值,函数实现就不能有默认值;
6.2、函数的占位参数
c++函数中可以有占位参数,用来做占位,调用参数使必须填补该位置 语法: 返回值类型 函数名(数据类型) { }
示例:
int add(int a, int){
cout << "占位参数" << endl;
}
int main(){
add(10,20); 占位参数必须填补
}
7、函数重载
作用:函数名可以相同,提高复用性
函数重载满足条件:
- 同一个作用域下
- 函数名相同
- 函数参数 类型不同 或者 个数不同 或者 顺序不同
示例:
int test(){
cout << "test() 的调用" << endl;
}
int test(int a){
cout << "test(int a) 的调用" << endl;
}
注意:
函数的返回值不可以作为函数重载的条件
|