函数【重点】
1 函数概述
代码中存在对于功能模块重复使用的情况 如果按照基本的cv方式 会导致代码出现以下问题
- 代码冗余!
- 代码维护性极差
- 代码阅读性极差!
2.main 函数推演函数组成
int main (int argc, char * argv [])
{
//函数体
}
/*
函数返回值数据类型 函数名 (函数形式参数列表)
{
函数体
}
returbType functionName(parameterTypes)
{
function Boyy
}
3.函数分类
3.1 概述
- 有参数有返回值函数{重点}
- 无参数有返回值函数
- 有参数无返回值函数
- 无参数无返回值函数
3.2 有参数有返回值函数{重点}
3.2.1 需求
完成一个函数 ,提供给函数两个int类型数据函数完成数据之和计算通过返回值告知
3.2.2函数分析
返回值类型 :
因为是两个int 类型数据相加 最终结果是int 类型
返回值数据类型为int类型
函数名:
【见名知意 动宾结构 约定俗成 小驼峰名名法】
形式参数列表:
提供给函数两个int类型数据需求原话
函数执行所需要的参数为两个int 类型数据格式要求
1、存在小括号
2. 一个参数对应一个定义要求
(int n1 ,int n2)
告知调用只,当前函数执行需要两个int 类型参数
3.2.3 函数声明
int getSum(int n1, int n2);
3.2.4文档注释
【重点】
/**
计算用户提供两个int类型数据之和 通过返回值返回。
@param n1 要求用户体提供int类型数据
@param n2 y要求用户提供int类型数据
@return 返回数据是int 类型为用户提供参数数据之和
*/
int getSum(int n1, int n2);
3.2.5 函数实现和调用
#include <iostream>
using namespace std;
// 当前情况就下函数声明在main函数之前
/** 计算机用户提供两个int
类型数据之和 通过返回值返回
@param n1 要求用户提供int类型数据
@param n1 要求用户提供int类型数据
@return 返回数据 就是int 类型 为用户提供参数数据之和
*/
int getSUn(int n1, int n2);
int main(int argc, char * argv[])
{
//函数是条狗 哪里实现那里吼
/*
1. 必须使用函数名
2. 必须有小括号、
3. 函数如果有参数需求 必须提供队形的【实际参数】
*/
cout << "函数调用之前" << ret << endl;
/*
getSum 是函数名称,小括号之中是对应的函数u所需参数的实际参数 所需要为两个int类型 提供的也是两个int类型数据
ret 接受函数的返回值数据
*/
ret = get(50,20);
cout << "函数调用之后" << ret << endl;
}
// 完成函数实现
int getSum(int n1, int n2){
/*return 关键字
1. 将return 之后的数据返回到函数调用位置
{重点】return 的数据类型必须满足函数声明要求
2.函数运行到return, 函数运行终止!
*/
return n1+n2;
}
3.2.6 有参数有返回值执行流程
3.3 无参数有返回值函数
3.3.1 需求
调用函数 函数返回一个整数5
3.3.2 函数分析
返回值数据类型
返回数据为整数5 返回数据类型为int类型
函数名 :
【j见名知意 动宾结构 小驼峰命名法】
giveMeFive
give_me_five
以上两个命名方式都可以
形式参数列表:
当前函数没有参数需求 哪怕函数没有参数需求 必须有小括号()
3.3.5 函数实现和调用
#include <iostream>
using namespace std;
/**
调用函数 返回一个整数 5
@return 当前函数返回数据类型为 int 形式 返回整数为5
*/
int main (int argc , char * argvp[])
{
int ret = 0;
cout << "Before Function call ,ret" << ret << endl;
//函数调用 使用ret 变量接受 函数的返回值数据内容
//[重点] 无论是 函数是否有参数小括号必须存在 !!
!!
ret = giveMeFive();
cout << "After Funtion call,ret:"<< ret<<endl;
}
int giveFive()
{
return 5;
}
3.3.6 无参数有返回值函数执行流程
3.4 有参数无返回值函数执行流程
3.4.1 需求
完成一个函数 在控制台展示用户提供的int类型数据内容
3.4.2 函数分析
返回值类型:
当前函数没有返回值 在C/C++ 中一个函数没有返回值
当前函数郿返回值 ,在C/C++ 中一个函数没有返回值 使用void站位
void 关键词站位告知
函数名:
【见名知意 动宾结构 小驼峰命名法】
prinIntvalue
形式参数列表
当前函数处理的数据是有用户提供的int类型数据参数为int类型
(int n)
3.4.3 函数声明
void prinIntaValue;
3.4.4 文档注释
/**
在控制台展示用户提供的当前函数的int类型
@param n 要求用户提供的int类型数据
*/
void printIntValue(int n);
3.4.5 函数的调用和实现
#include <iostream>
using namespace std;
/**
在控制台 展示用户提供的当前函数的int类型数据
@param n 要求用户提供的int类型数据
*/
void printInValue(int n);
int main (int argc , char * atgv[])
{
printInValue(10);
int n = 20;
printInValue(n);
}
void prinIntValue(int n ){
cout << "用户提供的int类型数据:" << n << endl;
}
3.4.6 有参数无返回值函数执行流程
3.5 无参数无返回值函数
3.5.1 需求
调用函数 在控制台展示hello
3.5.2 函数分析
返回值类型:
当前函数没有数据返回 使用void占位
函数名 : [见名知意 动宾结构 小驼峰命名法]
wantKeyboard
形式参数列表:
当前函数没有的参数需求 , 直接()
3.5.3 函数声明
void wantKeyboard();
3.5.4 文档注释
/**
调用函数在控制台展示Hello
*/
void wantKeyboard;
3.5.5 函数实现和调用
#include <iostream>
using namespace std;
/**
*/
void wantKeyboard();
int main (int argc , char *argv[])
{
wantKeyboard();
}
void wantKeyboard()
{
cout << "Hello" ;
}
**
调用函数在控制台展示Hello
*/
void wantKeyboard;
##### 3.5.5 函数实现和调用
```c++
#include <iostream>
using namespace std;
/**
*/
void wantKeyboard();
int main (int argc , char *argv[])
{
wantKeyboard();
}
void wantKeyboard()
{
cout << "Hello" ;
}