多文件建立

从顺序表开始,我们要开始建立多文件,因为以后工作中项目基本都是靠团队合作完成的。

那么具体是怎么合作跟建立多文件的

首先我们建立一个(.h)的头文件,名字叫sqlist,也就是sqlist.h

(.h)的头文件是放定义与声明的,(声明:就是只写函数的原型并不实现)

然后我们建立一个(.cpp)的源文件,名字也叫sqlist,也就是sqlist.cpp

与(.h)的头文件同名的(.cpp)的源文件,来放头文件中的函数的实现

接着我们再建立一个(.cpp)的源文件,名字叫text,也就是text.cpp

text.cpp里面放函数的调用,要引用(#include)(用  “  .h  ”  不能用  <  .h  >  )存放函数声明的头文件(.h)

最后在调用函数的text.cpp里面运行,结果是正确的30

那么我们来看一下在多文件下这个30是怎么运行出来的

现在这个名为text的源文件(.cpp),是Max这个函数的使用者,即在text文件里面调用Max函数那么就需要在text里面引用(#include)存放Max函数的定义与声明的头文件(.h),函数的使用者只关心函数的原型是什么样,要不然它不知道函数的返回值是什么,有几个参数,都是什么类型的。而(.h  )文件里有这些就够了.text并不关心Max函数是怎么实现的(就相当于你要使用一个工具,你并不需要知道这个工具是怎么生产完成的,你只需要拿着已经被别人做好的工具,去使用它就行了。就像你要吃饭也不需要先去种地),而函数的实现存放在与函数的声明同名字的源文件里面(.cpp)

以后的工作团队合作的时候,可能你的同事写好了函数的实现,他只给你了一个函数的原型(声明)例如,那么你引用完函数声明的头文件后,直接使用这个函数实现功能就可以了。即不需要知道这个函数功能怎么实现的,只要知道这个函数功能是什么含义,即知道东西怎么用然后去使用它就可以了。

一个团队分工在不同的文件里写代码,你只要写了什么函数,你就把这个函数放到这个点H文件里就行了,你函数的实现放在你的CPP里。        然后这里test就相当于——我在测试。我在text里面使用这个函数,看看在多次不同数据的使用下这个函数有没有什么问题,这个函数能不能满足不同情况下的测试用例。        以后数据结构代码几乎都是这样多文件。

接着我们看一下在头文件的第一行,系统自动给的一句代码是什么意思。这个只要写(.h)文件,这句话就自己跳出来了。

有一道面试题是问你如何预防头文件重复编译。答案就是它。所以#pragma once的意思就是防止头文件被重复引用。在以前老版本的vs时,这句话是需要每次手动打上去的。        因为如果头文件被重复引用了,就会出问题了,直接就编译通不过,报错了。

有人会说,头文件被重复引用我自己写的代码我还能不知道重没重复,你要知道你们是一个团队合作,重没重复,有可能你真的不知道。        为什么呢,就比如说你同时间引用了ABC三个文件。但是这个B文件里面可能又存有一部分A文件的内容,你不知道你直接就引用#include“ A.h ”,#include“ B.h ”,#include “C.h”,                结果B里面又含有了部分A的内容,这不就重复引用了吗?重复引用编译就通不过了,写这句话就告诉你如果被重复引用了,我们怎么样,就自动忽略掉。                比如说你在这里面定义一个什么类型,别人也定义了一个这个类型,同样的被重复定义了2次,肯定编译通不过。        所以要写#pragma once预防头文件被重复引用重复编译
 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值