Вызов метода общедоступного класса в другом классе в качестве плагина в С++
Я реализовал класс (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
очень признателен.