function could not be resolved c++ -
i trying make more general filter defined typedef pointer function. receive error in dynamicvector* filterbyquantity(int quantity) function. whole code trying do:
controller.h
typedef int (*filterfunc)(medicine* criteria, medicine*); dynamicvector<medicine>* filter2(medicine* criteria, filterfunc f); controller.cpp
#include "controller.h" int filterbyquantityless(medicine* criteria, medicine* p) { if (criteria->getquantity() > p->getquantity()) { return 0; } return 1; } dynamicvector<medicine>* controller::filter2(medicine* criteria, filterfunc f){ dynamicvector<medicine>* medlist = repo->getall(); dynamicvector<medicine>* rez = new dynamicvector<medicine>(); for(int i=0; < medlist->getlen(); i++){ medicine* m = new medicine(medlist->getelementatposition(i)); if(!f(criteria, m)){ rez->addelement(*m); } } return rez; } dynamicvector<medicine>* filterbyquantity(int quantity){ medicine* criteria = new medicine(1,"",1,quantity); dynamicvector<medicine>* rez = filter2(criteria, filterbyquantityless); //error return rez; } the error is: multiple markers @ line - 'filter2' not declared in scope - function 'filter2' not resolved
where doing wrong? filter2 function returns dynamicvector don't understand why doesn't work.
because filter2´s declaration , implementation differs.
look @ how you're prototyping on line 2 , how implements it. filter2 should either declared part of controller scope or part of global scope, not both.
Comments
Post a Comment