目录
前言:学习资料参考自《C++ Primer Plus(第6版)中文版》和B站视频《C++教程从0到1入门编程》黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili
一、函数
1、一些基本概念
- 函数概述:将一段经常使用的代码封装起来,减少重复
- 函数的定义语法:
返回类型 函数名(参数列表)
{
主体语句
return 返回的语句
}
//例子:函数的定义
int add(int num1,int num2)
{
int sum=sum1+sum2;
return sum;
}
- 调用函数:使用定义好的函数
格式:函数名(参数)
//例子:函数的调用
int a=1,b=2;
int c=add(a,b);//调用已经定义过的函数
- 形参与实参
形参:形式上的参数,函数定义的参数,非真实使用的数据。
实参:实际参数,函数调用时,实参的值会传递到形参中。
//函数定义
int add(int num1,int num2)//此处的num1,num2称为形参
{
int sum=sum1+sum2;
return sum;
}
//函数调用
int a=1,b=2;
int c=add(a,b);//此处的a,b称为实参
-
参数有无和返回有无
根据参数、返回有无分为4种形式:无参无返,无参有返,有参有返,有参无返
2、函数的声明
- 作用:告诉编译器该函数的存在及如何调用,函数的实际主体可单独定义。(编译器要知道函数的存在才能调用,这样定义可以放在调用后面写。)
- 用法:可多次声明,多次调用。但函数的定义只能有1次。
//声明
int max(int a,int b);
//调用
int aa=1,bb=2;
max(aa,bb)
//定义
int min(int a,int b)
{
return a>b?a:b;
}
3、函数的分文件编写
分文件编写的意义:将函数封装到头文件,就可在其他文件调用该函数,增加函数的可复用性。
步骤:
- 创建头文件:.h后缀
- 创建源文件:.cpp后缀
- 在头文件中写函数声明和定义
- 在源文件声明头文件,调用函数
//例子:函数的分文件写法
//先新建以下.h头文件,如文件命名为sawp.h
#include<iostream>
using namespace std;
void swap(int a,int b)
{
int temp=a;
a=b;
a=temp;
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
}
//再新建以下.cpp源文件,如命名为swap.cpp
#include<iostream>
using namespace std;
#include"swap.h"//声明头文件
int main
{
int a=1,b=2;
swap(a,b);//调用头文件中的函数
system("pause");
return 0;
}
4、函数可设置默认参数
用法:
- 默认参数要放在后面,不能出现后面没默认参数的情况。
- 只能声明或定义时的其中一种情况写,不能同时都写默认参数
//函数调用的例子
void swap(int a,int b=111,int c=999);//声明,b和c设置了默认参数
//函数调用
int main()
{
swap(10,20);//参数c使用了默认参数
return 0;
}
//函数定义
//void swap(int a,int b,int c)//前面声明时已有设置默认参数,故此处定义时不允许设置默认参数
{
cout<<a<<b<<c<<endl;
}
5、函数的占位参数
概述:占位参数,只占用位置,不参与操作。也可设置默认参数
//使用占位参数例子
void F(int)//无默认参数的占位参数
{
cout<<1<<endl;
}
void F1(int=9)//有默认参数的占位参数
{
cout<<9<<endl;
}
//调用函数
int main()
{
F(9);//调用含占位参数的函数
F1();//占位参数是默认参数
return 0;
}
6、函数的重载
概述:相同的函数名可定义新的内容,提高函数的复用性
重载条件: