我试图添加"属性"在我的自定义模块中使用以下代码
在我的* .kdm.json文件中:
"properties": [
{
"name": "params",
"doc": "set params",
"type": "String"
}
]
我的.hpp文件
virtual std::string getParams();
virtual void setParams (std::string params);
在我的.cpp文件中
void myCustomFilterImpl::setParams (std::string params)
{
//code here
}
std::string myCustomFilterImpl::getParams ()
{
return params.c_str();
}
我在运行debuild
error: cannot allocate an object of abstract type ‘kurento::module::mycustomfilter::myCustomFilterImpl’ return new myCustomFilterImpl (conf, mediaPipeline);
..... note: because the following virtual functions are pure within ‘kurento::module::mycustomfilter::myCustomFilterImpl’: class myCustomFilterImpl:public FilterImpl, public virtual myCustomFilter
^
.... note: virtual void kurento::module::mycustomfilter::myCustomFilter::setParams(const string&)
virtual void setParams (const std::string ¶ms) = 0;
^
... error: control reaches end of non-void function [-Werror=return-type]
}
^
我在这里缺少什么可以添加到我的自定义模块代码中?
properties
对我的其他自定义模块工作正常,但我不知道我是如何在此自定义模块中收到此错误的。
答案 0 :(得分:2)
问题是该方法是由模板声明的:
virtual void setParams (const std::string ¶ms);
但你是这样实现的:
virtual void setParams (std::string params);
请注意params
声明(&
和const
)的差异