我是C++的新手,正在使用QT开展项目.我创建了一个名为imageconvert.h的头文件,如下所示:
class ImageConvert
{
private:
IplImage *imgHeader;
uchar* newdata;
public:
ImageConvert();
~ImageConvert();
IplImage* QImage2IplImage(QImage *qimg);
QImage* IplImage2QImage(IplImage *iplImg);
};
Run Code Online (Sandbox Code Playgroud)
我也在imageconvert.cpp文件中定义了那些公共方法.
现在,我想从其他cpp文件调用QImage2IplImage和IplImage2QImage.所以我在该CPP文件中包含了imageconvert.h并调用了这两个函数.
它给出了以下错误:
error: 'QImage2IplImage' was not declared in this scope
error: 'IplImage2QImage' was not declared in this scope
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
您定义的函数是ImageConvert类的成员函数.您需要该类的实例才能调用它们.
就像是:
ImageConvert ic;
ic.QImage2IplImage(your_QImage_object);
Run Code Online (Sandbox Code Playgroud)
如果您不需要状态来进行转换,则应该创建这些辅助函数static.然后你可以用:
ImageConvert::QImage2IplImage(your_QImage_object);
Run Code Online (Sandbox Code Playgroud)
没有先创建一个实例ImageConvert.但请注意,您将无法使用imgHeader或newData在那些静态函数中 - 它们是成员变量,只能在该类的实例中使用.
您也可以从类中删除这些函数并将它们放入namespace.
| 归档时间: |
|
| 查看次数: |
7305 次 |
| 最近记录: |