2016-08-26 34 views
1

我想在我的自定义模块添加“属性”使用下面的代码Kurento:自定义模块的错误,同时增加“属性”

在我* .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 &params) = 0; 
       ^
... error: control reaches end of non-void function [-Werror=return-type] 
     } 
    ^

有什么,我缺少这里,我自定义模块的代码添加?

properties工作正常,我的其他自定义模块,但我不知道我在这个自定义模块中得到这个错误。

+0

看起来像在'kdm.json'文件中添加''属性''使得类抽象,任何想法什么mi是否会出错? –

回答

2

的问题是,该方法是由模板声明如下:

virtual void setParams (const std::string &params); 

但你这样实现它:

virtual void setParams (std::string params); 

注意区别在params declararion(&const

+0

非常感谢,它工作! –