在实际应用开发中,由于项目很大,我们往往需要进行函数的分文件编写。函数分文件编写可以让代码结构更加清晰易读。 函数分文件编写主要包括四步:
- 创建后缀名为.h的头文件
- 创建后缀名为.cpp的源文件
- 在头文件中写函数的声明
- 在源文件开头包含头文件#include"XX"
比如来看一个示例: swap.h:(.h头文件放到Visual Studio的头文件中) swap.cpp:(子函数,放在Visual Studio的源文件中)
主函数:(主函数,也放在Visual Studio的源文件中)
通过一个例子,你可能就明白函数的分文件编写了,如果还不明白,可以参考C++教程:https://www.bilibili.com/video/BV1et411b73Z?p=55
下面重点介绍一下带有Mat类的函数分文件编写。
任务要求:建立一个绘制灰度直方图的子函数,并且用函数分文件编写显示。
步骤同样是这四步:
1. 创建后缀名为.h的头文件这里新建一个depth_hist.h的头文件
分别创建main.cpp和depth_hist.cpp,并且分别写入主函数和子函数相关内容。 如main.cpp: depth_hist.cpp:
理论上,将子函数文件的第一行void XXX复制到头文件中再加上;即可实现,但在实际使用中我发现编译器会报一个错误: 总之就是未声明Mat的标识符。经过多方查阅资料,我终于发现因为Mat是opencv里的文件,所以要标明,即要添加using namespace cv,而由于头文件中无法使用using namespace cv,因此需要增加cv::才行。 最终语句:
分别在main.cpp和depth_hist.cpp中包含头文件:
#include"depth_hist.h"
最终,main.cpp程序如图: depth_hist.cpp部分程序如图:
ok,以上便是全部内容了,如果对你有所帮助,记得点个赞哟~