C++基础知识(4)--函数、分文件函数

函数

函数的语法格式:
return_type function_name(params){}换成更好理解的中文是函数返回的类型 函数名(参数){}
函数返回类型是根据函数里面最后的返回结果是什么,比如函数类型返回是int类型,那么函数类型就应该是int类型。

例子:

1
2
3
4
5
6
7
8
// return 返回后的类型是123,属于int类型,所以要用int类型去定义函数
int test (){
return 123;
}
// 返回的字符char类型
char test1(){
return 'a';
}

如何调用函数?

直接函数名后面加上(),在括号里面加入对应的参数即可。 例子:

1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>

using namespace std;

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

int main(){
cout << sum(1,2) <<endl;
return 0;
}

运行结果是:3

需要注意的是函数定义要放到调用函数的前面,否则会报错。错误例子:

1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>

using namespace std;

int main(){
cout << sum(1,2) <<endl; // 会报错
return 0;
}

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

如果在调用前为定义函数怎么调用呢?
答案:可以提前声明函数。
例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

#include <iostream>

using namespace std;

// 声明函数
int sum(int a, int b);

int main(){
cout << sum(1,2) <<endl;
return 0;
}

// 定义函数
int sum(int a, int b){
return a+b;
}

运行结果是:3

分文件函数

函数分文件有两种:一种是.h头文件配合实现文件.cpp,一种是.hpp文件。

.h头文件

创建一个.h头文件用来声明函数一个.cpp实现文件用来定义.h文件声明的函数
例子:

  1. 创建一个名为header.h的文件,去声明函数:
1
2
3
4
5
6
#include <iostream>

using namespace std;

// 声明一个max函数
int max(int a,int b);
  1. 再创建一个名为header.cpp 文件,需要头文件引入一下刚才创建的header.h 文件
1
2
3
4
5
6
7
#include "header.h"

// 定义一个header.h文件中声明的max函数
int max(int a,int b){
int num = a > b ? a : b;
return num;
}
  1. 在源文件中引入header.h 文件,再调用header.h 文件中的声明的函数。
    main.cpp文件:
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include "header.h"

using namespace std;

int main(){
// 调用再header.h 文件中声明的函数
cout << max(1,2) <<endl;
return 0;
}

运行结果:2

.hpp

.hpp是C++程序头文件格式,.hpp文件的方式是将.cpp的实现代码混入.h头文件当中。
例子:
创建一个名为header.hpp文件

1
2
3
4
5
6
7
#include <iostream>

int min(int a,int b);

int min(int a,int b){
return a < b ? a : b;
}

在源文件main.cpp引入调用。

1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include "header.hpp"

using namespace std;

int main(){
// 调用再header.h 文件中声明的函数
cout << min(1,2) <<endl;
return 0;
}

运行结果: 1

.h和.hpp的区别

.h里面可以有using namespace std,而.hpp里则无。