c++ - 类定义和调用有困难

标签 c++ class opencv

在 C++(使用 openCV)中,我在头文件中定义了我的调用,如下所示:

class myClass
{
public: 
    myClass ( cv::Mat& _mat );
    void initClass ( cv::Mat& img, cv::Mat& mask, myClass& src, myClass& dst );
}

然后在相应的“cpp”文件中,我这样定义:

myClass::myClass ( cv::Mat& _mat )
{
    model = _model;
     ....
 }

void myClass::initClass ( cv::Mat& img, cv::Mat& mask, myClass& src, myClass& dst )
{
    //some work here
}

然后我将其头文件包含在“main.cpp”中,并尝试这样调用它:

cv::Mat test ( height, width, CV_8UC3 );
cv::Mat test2 ( height, width, CV_8UC3 );
myClass::myClass auM ( test );
myClass::myClass buM ( test );
myClass::initClass ( img, img, auM, buM );

但是最后两行都给出了错误,说:

cannot determine which instance of overloaded function "myClass::myClass" is intended

对于线条

myClass::myClass auM ( test );
myClass::myClass buM ( test );

a nonstatic member reference must be relative to a specific object

对于线路

    myClass::initClass ( img, img, auM, buM );

我搜索了一下,发现它与我的类定义有关,但我无法解决它。有人可以帮助我吗?

最佳答案

使用一个构造函数参数实例化类的语法是

myClass auM(test);

您不需要“调用”myClass::myClass。至于成员函数initClass,您将其视为静态方法来调用。需要在实例上调用非静态成员函数:

auM.someMethod( arg1, arg2, .... );

关于c++ - 类定义和调用有困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12979697/

相关文章:

c++ - 为什么同步安全整数?

c++ - ZScript 文件执行到 DLL

python类属性

loops - OpenCV:使用范围设置矩阵值

python - 如何解决AttributeError : 'module' object has no attribute 'createBackgroundSubtractorMOG' in opencv?

c++ - 字符串池/实习——这是好的做法吗?

c++ - 在 C++ 中读取二进制文件而不将整个文件缓冲到内存中

python - 为什么我在 Python 类定义中的生成器中得到这个 NameError?

统计分布类型的 C++ 模板用法

python - 棕褐色过滤器反转