(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-100arr[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;
}

运行结果如图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/425060.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

炫酷HTML蜘蛛侠登录页面

全篇使用HTML、CSS、JavaScript&#xff0c;建议有过基础的进行阅读。 一、预览图 二、HTML代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-w…

Linux下的简单TCP客户端和服务器

客户端 #include <arpa/inet.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <unistd.h> #include <sys/socket.h>int main() {struct sockaddr_in* caddr(struct sockaddr_in*)malloc(sizeof(struct sockaddr…

HTML5超酷炫的水果蔬菜在线商城网站源码系列模板1

文章目录 1.设计来源1.1 主界面1.2 商品列表界面1.3 商品详情界面1.4 其他界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/142059238 HTML5超酷炫的水果蔬菜在线商城网…

鸿蒙开发之ArkTS 基础六 对象

什么是对象的呢&#xff1f;就是描述物体的特征和行为&#xff0c;是可以存储多种数据的容器 对象的定义和使用 let 对象名称: 对象结构类型 值 通过interface 关键字来约定对象结构类型,语法结构如下&#xff1a; interface 对象名{ 属性1&#xff1a;类型 属性2&#…

yjs06——numpy的介绍与优势(1)

1.numpy是什么&#xff1f; numpy是python的一个科学计算库&#xff0c;用于快速处理 任意维度的数据&#xff1b; numpy的存储单元/基本数据类型是 ndarray&#xff08;多维数组&#xff09; 2.多维数组的建立&#xff1a; import numpy as np np.array([ [1,2,3], [4,5,6…

STL值list

list容器 头文件&#xff1a;#include<list> - list是一个双向链表容器&#xff0c;可高效地进行插入删除元素 - list不可以随机存取元素&#xff0c;所以不支持at.(pos)函数与[]操作符 注&#xff1a;list使用迭代器访问数据时可以一步一步走自增自减&#xff08;即…

【webpack4系列】webpack进阶用法(三)

文章目录 自动清理构建目录产物PostCSS插件autoprefixer自动补齐CSS3前缀移动端CSS px自动转换成rem静态资源内联多页面应用打包通用方案使用sourcemap提取页面公共资源基础库分离利⽤ SplitChunksPlugin 进⾏公共脚本分离利⽤ SplitChunksPlugin 分离基础包利⽤ SplitChunksPl…

食品包装识别系统源码分享

食品包装识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

(1)LT9211学习笔记

文章目录 前言一、MIPI接口是什么&#xff1f;二、LT9211框图及应用1&#xff0c;作为MIPI发射机&#xff1a;2&#xff0c;作为双端口Lvds发射机3&#xff0c;作为TTL输出4&#xff0c;作为MIPI接收机&#xff1a;5&#xff0c;作为双端口Lvds接收机6&#xff0c;作为TTL输入 …

林草湿地址、导出echart为word

2.导出 // 导出exportDoc () {this.loading truelet arrRefs [this.$refs.endChart, this.$refs.processChart, this.$refs.officeEndChart]setTimeout(() > {Promise.all(arrRefs.map((canvasDom) > {return this.html2canvasHandle(canvasDom)})).then(res > {let…

组合数(模板)

1.杨辉三角求组合数&#xff0c;最高只能求几千内的组合数。 #include<bits/stdc.h> using namespace std; #define int long long int C[1005][1005]; signed main() {//求 1000 以内的组合数 for(int i0;i<1000;i){C[i][0]C[i][i]1;for(int j1;j<i;j){C[i][j]C[…

MATLAB入门教程

MATLAB安装教程可参考链接&#xff1a;matlab怎么安装 matlab安装教程-电脑软件-PHP中文网 1.MATLAB的工作环境 &#xff08;1&#xff09;命令窗(command window) 是对MATLAB进行操作的主要载体。默认情况下&#xff0c;启动MATLAB时就打开命令窗。MATLAB的所有所数…

微软九月补丁星期二发现了 79 个漏洞

微软将在2024 年 9 月补丁星期二修复 79 个漏洞。 微软有证据表明&#xff0c;发布的四个漏洞被野外利用和/或公开披露&#xff1b;所有四个漏洞均已在CISA KEV上列出。微软还在修补四个关键的远程代码执行 (RCE) 漏洞。 不同寻常的是&#xff0c;微软本月尚未修补任何浏览器…

Codes 开源研发项目管理平台——敏捷测试管理创新解决方案

前言 Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台&#xff0c;支持云端认证、本地部署、全部功能开放&#xff0c;并且对30人以下团队免费。它通过整合迭代、看板、度量和自动化等功能&#xff0c;简化测试协同工作&#xff0c;使敏捷测试更易于实施。并提供低成本的…

自动排课管理系统(源代码+论文+开题报告)

一、题目摘要 题目简要说明&#xff1a; 选排课系统功能的设计上&#xff0c;选排课系统可以分为登录、排课和选课3个子系统。登录子系统区分排课者(也即系统的管理者)、教师和学生这三者的不同身份&#xff0c;给出不同的权限&#xff0c;在页面中根据身份判断其相应具有的功…

Scratch游戏-史诗忍者7免费下载

小虎鲸Scratch资源站-免费少儿编程Scratch作品源码,素材,教程分享网站! 作品描述&#xff1a; 在Scratch版本的《史诗忍者7》中&#xff0c;你需要穿越关卡&#xff0c;击败敌人并收集33个水果。通过灵活的操作和精准的攻击&#xff0c;逐步闯过重重难关。游戏中提供了丰富的技…

C++3D迷宫

目录 开头程序程序的流程图程序游玩的效果下一篇博客要说的东西 开头 大家好&#xff0c;我叫这是我58。 程序 #include <iostream> using namespace std; void printmaze(char strmaze[5][5][5]) {cout << "-----" << endl;int i 0;int ia 0…

Java后端框架---Spring

目录 一.Spring是什么&#xff1f; 二.Spring Hello World 搭建 三.XML配置bean管理 1.bean标签 2.依赖注入 3.依赖注入的补充 四.注解配置bean管理 1.开启注解扫描 2.使用注解对类进行配置 3.自动注入 五.面向切面编程AOP 1.概述 2.通知 六.spring事务管理 1.数据库…

网络原理(3)—— 应用层、传输层(TCP)

1. 应用层 日常开发中最常用到的一层&#xff0c;主要涉及到两种情况&#xff1a; 1) 使用现成的应用层协议 2) 自己定义应用层协议 1.1 自定义应用层协议的流程 1. 明确前后端交互过程中需要传递哪些信息 实例&#xff1a;开发一个外卖软件 打开软件&#xff0c;首先需要展…

Linux 文件 IO 管理(第一讲)

Linux 文件 IO 管理&#xff08;第一讲&#xff09; 回顾 C 语言文件操作&#xff0c;提炼理解新创建的文件为什么被放在可执行文件的同级目录下&#xff1f;上述 log.txt 何时被创建&#xff1f;又是谁在打开它&#xff1f;那文件没有被打开的时候在哪里&#xff1f;一个进程可…