Inheritance 变量未在派生类中存储数据

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

遇到条件时,此img始终为空。 我主要使用此代码的方式是:

伪码

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);
   }
}