I am trying to create a derived class from the Opencv3.0 SVM in the following way and I get an error. Can anyone suggest a solution for this? Thanks in advance.
class MyClass: public SVM
{
}
int main(void) { MyClass *mysvm = new MyClass; }
This defnition is generating the following error while compilation:-
||In function 'int main()':| error: invalid new-expression of abstract class type 'MyClass'| note: because the following virtual functions are pure within 'MyClass':| |302|note: virtual int cv::ml::StatModel::getVarCount() const| |307|note: virtual bool cv::ml::StatModel::isTrained() const| |309|note: virtual bool cv::ml::StatModel::isClassifier() const| |349|note: virtual float cv::ml::StatModel::predict(cv::InputArray, cv::OutputArray, int) const| |493|note: virtual int cv::ml::SVM::getType() const| |495|note: virtual void cv::ml::SVM::setType(int)| |500|note: virtual double cv::ml::SVM::getGamma() const| |502|note: virtual void cv::ml::SVM::setGamma(double)| |507|note: virtual double cv::ml::SVM::getCoef0() const| |509|note: virtual void cv::ml::SVM::setCoef0(double)| |514|note: virtual double cv::ml::SVM::getDegree() const| |516|note: virtual void cv::ml::SVM::setDegree(double)| |521|note: virtual double cv::ml::SVM::getC() const| |523|note: virtual void cv::ml::SVM::setC(double)| |528|note: virtual double cv::ml::SVM::getNu() const| |530|note: virtual void cv::ml::SVM::setNu(double)| |535|note: virtual double cv::ml::SVM::getP() const| |537|note: virtual void cv::ml::SVM::setP(double)| |545|note: virtual cv::Mat cv::ml::SVM::getClassWeights() const| |547|note: virtual void cv::ml::SVM::setClassWeights(const cv::Mat&)| |554|note: virtual cv::TermCriteria cv::ml::SVM::getTermCriteria() const| |556|note: virtual void cv::ml::SVM::setTermCriteria(const cv::TermCriteria&)| |560|note: virtual int cv::ml::SVM::getKernelType() const| |564|note: virtual void cv::ml::SVM::setKernel(int)| |568|note: virtual void cv::ml::SVM::setCustomKernel(const cv::Ptr<cv::ml::svm::kernel>&)| |665|note: virtual bool cv::ml::SVM::trainAuto(const cv::Ptr<cv::ml::traindata>&, int, cv::ml::ParamGrid, cv::ml::ParamGrid, cv::ml::ParamGrid, cv::ml::ParamGrid, cv::ml::ParamGrid, cv::ml::ParamGrid, bool)| |679|note: virtual cv::Mat cv::ml::SVM::getSupportVectors() const| |696|note: virtual double cv::ml::SVM::getDecisionFunction(int, cv::OutputArray, cv::OutputArray) const| ||=== Build failed: 1 error(s), 18 warning(s) (0 minute(s), 2 second(s)) ===|