第一次做项目,用c++编了一些图像处理的算法,最后把一系列处理过程写入了一个主函数中。现在想提交给做整体框架的人,要求就是,他在工程中包含我的文件,就可以调用这个主函数,而其他的函数,以及相对于主函数的外部变量都是不可见的。
我现在就是写了一个.h文件和.cpp文件,把所有的函数和变量都放在里面,然后放入工程的globals中。怎样封装才是规范的做法,我就不清楚了。请大家指点,不需要具体的步骤,只要一个大致的方向就可以,我好去查文章实现。谢谢!
我现在就是写了一个.h文件和.cpp文件,把所有的函数和变量都放在里面,然后放入工程的globals中。怎样封装才是规范的做法,我就不清楚了。请大家指点,不需要具体的步骤,只要一个大致的方向就可以,我好去查文章实现。谢谢!
不太清楚什么意思.不知道对什么"都是不可见的",主函数?
调用主函数的函数?
对于一种类型的算法, 可以采用 strategy 模式. 效率不会减低多少的.对于图象处理, 该接口可以是:
virtual int do_imaging(IN OUT BYTE** pImageData); // IN, OUT 定义的空宏, 表示输入输出
// 返回某个处理结果索引
如果封装成类,如何得到主函数的入口?该去看哪方面的知识?谢谢。to hooliganstreet() :
我的程序大致是这种结构
BOOL a(){}
BOOL b(){}
int i,j;
BOOL main(){}
就是说,别人只能看到main()函数,而a(),b(),i,j等函数和变量不让别人看到。
封装成类,主要是我不知道该如何让别人调用main(),请指教,谢谢。to enoloo(在水一方):
我不太明白你的意思,回头在看看你说的strategy 模式,谢谢。
在h头文件只看得函数原形,cpp源文件可以封装在lib和dll文件里.////////////////////////myClass.h//////////////////////
#ifndef _MYCLASS_H_FILE
#define _MYCLASS_H_FILEclass myClass
{
public:
BOOL a();
BOOL b();protected:
int i,j;
};#endif //end _MYCLASS_H_FILE///////////////////////myClass.cpp///////////////////////
//有必要的话你可以把它编译成lib和dll文件
#include "myClass.h"BOOL myClass::a()
{
//Do some thing...
}BOOL myClass::b()
{
//Do some thing...
}
////////////////////////////dothing.c////////////////////////////////
//这个文件里放着你的主函数,对这个文件进行编译....
#include "myClass.h"void main()
{
//Do some thing... myClass m_myObj;
m_myObj.a(); //Call function a().
m_myObj.b() //Call function b().
m_myObj.i = 10;
m_myObj.j = 20;
}