(c++)函数的分文件编写

1、在头文件文件夹中创建.h的头文件(如:_func.h),用于存放函数的声明。注意头文件里面也要声明#include<iostream>  using namespace std;因为等会你编写的函数要用这两个东西

2、在源文件里面创建一个.cpp文件来写函数的定义,也就是函数的具体是实现,但是要将函数的具体实现和“1、”里面的函数声明联系起来,需要在这个.cpp文件中包含头文件#include"_func.h"

到这里函数文件就写完了

3、如果需要在main函数里面调用自己写的函数,需要在main()函数的那个cpp文件里面包含#include"_func.h" (注意这里是双引号而不是尖括号,双引号代表是自己写的头文件),相当于告诉编译器我用的函数在这里面,然后就可以正常调用自己写的函数了。

如图:_func.h放的是函数声明,_func.cpp放的是函数实现,_20240915.cpp里面是main()函数

以下是_func.h文件中的内容

#include<iostream>
using namespace std;
//这两个固定格式要加上,因为函数内部实现需要依赖这个头文件

#include<ctime>
#include<string>

void _print_arr(int arr[], int len);//打印一个数组(数组名,数组长)
void _rand_init(int arr[], int len);//给数组随机初始化(数组名,数组长)
void _bubble_sort(int a[], int len);//冒泡排序(数组名,数组长)
void _swap(int* a, int* b);//交换两个数(&a,&b)即参数为两个变量的地址

以下是_func.cpp中的内容

#include"_func.h"//包含这个“自编写”的头文件,让两个文件产生关联

void _print_arr(int arr[], int len)//打印数组函数,(输入数组名,数组长度)
{
	for (int i = 0; i < len; i++)
	{
		cout << arr[i] << "\t";
	}
	cout << endl;
}
void _rand_init(int arr[], int len)//用随机数来初始化这个数组,(输入数组名,数组长度)
{
	for (int i = 0; i < len; i++)
	{
		arr[i] = rand() % 100 + 1;
	}
}

#include"_func.h"//包含这个“自编写”的头文件,让两个文件产生关联

void _print_arr(int arr[], int len)//打印数组函数,(输入数组名,数组长度)
{
	for (int i = 0; i < len; i++)
	{
		cout << arr[i] << "  ";
	}
	cout << endl;
}
void _rand_init(int arr[], int len)//用随机数来初始化这个数组,(输入数组名,数组长度)
{
	for (int i = 0; i < len; i++)
	{
		//随机的范围是1-100
		arr[i] = rand() % 100 + 1;
	}
}

void _bubble_sort(int arr[], int len)
{
	for (int i = 0; i < len - 1; i++)//如果这里将len-1换成len ,那么会多比较一轮,冒泡排序在len-1轮的时候就已经完成了
	{
		for (int j = 0; j < len - 1 - i; j++)//这里这个-1不能省略,如果省略了,那么会将arr[len]的值赋给arr[len-1],但是arr[len]已经不是arr数组的空间了;
		{
			if (arr[j] > arr[j + 1])
			{
				int temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
}

void _swap(int* a, int* b)
{
	int temp = *a;
	*a = *b;
	*b = temp;
}


void _swap(int* a, int* b)
{
	int temp = *a;
	*a = *b;
	*b = temp;
}

main()函数的文件可以正常调用上述函数,代码如下:

#include<iostream>
#include"_func.h"//你要用自己写的函数,就需要声明一下头文件,让编译器知道你写的函数在哪里
using namespace std;

int main()
{
	srand((unsigned int)time(NULL));
	int arr[6];
	//给数组随机初始化,然后打印看看
	_rand_init(arr, 6);
	cout << "初始化后的数组:";
	_print_arr(arr, 6);

	//冒泡排序排个序,然后打印看看
	_bubble_sort(arr, 6);
	cout << "排序后的数组:";
	_print_arr(arr, 6);

	system("pause");
	return 0;
}

运行结果如图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值