Вызов метода общедоступного класса в другом классе в качестве плагина в С++

Я реализовал класс (track), который отлично работает как автономный, но когда я пытаюсь интегрировать его в другой проект с использованием наследования, он дает мне ошибку. фрагмент, как показано ниже

       //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 внутри класса обнаружения и вызов метода обновления.

ошибка ex 1) ошибка: ожидаемое первичное выражение перед автоматическими объектами токена '->' = ctrack->update(boxes); 2) ошибка: нет подходящей функции для вызова 'snp::update(std::vector<cv::Rect_ >&)' auto objects = update(boxes);

но мне не хватает основ.

пожалуйста, помогите, как я могу легко вызвать обновление метода из класса ctrack внутри метода обнаружения внутри класса snp

очень признателен.

0 ответов

Другие вопросы по тегам