首页 > 解决方案 > 在另一个类中调用公共类方法作为c ++中的插件

问题描述

我已经实现了一个(轨道)类,它可以作为独立的正常工作,但是当我尝试使用继承将它集成到另一个项目中时,它给了我错误。片段如下

 //file ctrack.hpp

    class ctrack {
    public:
        explicit ctrack(int mxc);
    
        void register_Object(int cX, int cY);
    
        std::vector<std::pair<int, std::pair<int, int>>> update(std::vector<std::vector<int>> boxes);
    
        std::map<int, std::vector<std::pair<int, int>>> path_keeper;
    private:
         
        std::map<int, int> disappeared;
    };

调用类 snp.hpp

//file snp.hpp
#include "ctrack.h"

    class snp : public ctrack, public obsd
    {
    public:
    void detect();
    };

现在,当我尝试调用 snp.cpp 中的更新函数时

//fiel snp.cpp
void snp::detect(ushort data)
{   
    
    static std::vector<cv::Rect2d> boxes; 
    
   snp->update(boxes);//calling method from ctrack class

}  

我也尝试过其他方法,比如在检测类中创建 ctrack 类的对象并调用更新方法。

错误前 1) 错误: '->' 标记自动对象之前的预期主表达式 = ctrack->update(boxes); 2) 错误:没有匹配函数调用 'snp::update(std::vector<cv::Rect_ >&)' auto objects = update(boxes);

但我缺少基础知识。

请帮忙,我怎样才能轻松地从snp类中的检测方法中的ctrack类调用方法更新

非常感激。

标签: c++c++14c++17

解决方案


推荐阅读