Like I said in the title, I can't pass an inner class object as argument for outer class' constructor. Below is the class header;
class Corner {
public:
Corner(cv::Mat imageMat, int flag, feat::Corner::cornerDetectorHarris* cdh = nullptr);
...
class cornerDetectorHarris {...};
...
};
Visual Studio Community has no problem with the codeabove. Problem is when I try to define the function in .cpp file;
feat::Corner::Corner(cv::Mat imageMat, int flag, feat::Corner::cornerDetectorHarris* cdh) {}
VSC claims a E0493 error under the second Corner
, "no instance of overloaded function "feat::Corner::Corner" matches the specified type"
. Here is the error code;
Severity Code Description Project File Line Suppression State
Error (active) E0493 no instance of overloaded function "feat::Corner::Corner" matches the specified type bpv2 C:\Users\ASUS\source\repos\bpv2\bpv2\feat.cpp 533
If I remove the cornerDetectorHarris
pointer the error goes away so I'm fairly sure it's the problem. I tried removing the default value for argument but it didn't change anything.