Inheritance 变量未在派生类中存储数据
遇到条件时,此img始终为空。 我主要使用此代码的方式是: 伪码Inheritance 变量未在派生类中存储数据,inheritance,opencv,Inheritance,Opencv,遇到条件时,此img始终为空。 我主要使用此代码的方式是: 伪码 class A { public: virtual ~A() {} virtual Process(cv::Mat& img) {} } ; class B : public A { public: Process(cv::Mat& inputimage) { if (img.empty()) { img = inp
class A
{
public:
virtual ~A() {}
virtual Process(cv::Mat& img) {}
} ;
class B : public A
{
public:
Process(cv::Mat& inputimage)
{
if (img.empty())
{
img = inputimage.clone();
return;
}
else
cv::imshow ("image", img);
}
private:
cv::Mat img;
};
代码不完整,但本质上问题在于变量没有以某种方式存储 我换衣服的时候问题就解决了
img.copyTo(img2)代码>
到
img2=img.clone()代码>
谢谢 请编辑您的代码。现在还不清楚它应该做什么:如果分支与private:
混合。。奇怪!若您将进程设为纯虚拟进程,若B正确实现它,至少可以跟踪类A{public:virtual~A(){}虚拟进程(cv::Mat&img)=0;}代码>再次,请编辑您的代码,那里有很多错误,流程需要返回类型,一个->流程而不是一个。流程,等等。不要那么草率!
int main ()`
{
A* a;
a = new B;
while(avi.notempty()
{
a.Process(nextFrame);
}
}