2017-10-17 68 views
0

我试图通过从JUCE中的ValueTree中读取来创建一个选项卡式窗口。JUCE - 成员函数不可行:'this'参数有类型const

我使用下面的代码来将相应选项卡的根项目设置为树的子项(完整代码可用here)。但是,我得到的错误:

"Member function 'getValueTree' not viable: 'this' argument has type 'const GlobalValueTree', but function is not marked const".

我使用的树被getValueTree()返回或函数本身都是非静态的对象。

AccelerometerPage (const DataSelectorWindow& w) 
{ 
    tree.setRootItem (rootItem = new const OscValueTreeItem 
    (w.valueTree.getValueTree()->getChildWithName ("AccData"))); 
} 

有人可以指出我正确的方向,为什么这是不正确的,以及如何去解决它?

回答

2

I get the error "Member function 'getValueTree' not viable: 'this' argument has type 'const GlobalValueTree', but function is not marked const"

这是因为wconst但该方法getValueTree只能在非const DataSelectorWindow对象。

如果DataSelectorWindow对象被你写的,你认为getValueTree()应该被允许在const对象被调用,改变它的原型:

<return-value> getValueTree(<params>) const { 
    ... 
} 

如果DataSelectorWindow对象是别人写的一个人,您 AccelerometerPage c'tor应该接受一个非const DataSelectorWindow&,像这样:

AccelerometerPage (DataSelectorWindow& w) { 
    ... 
} 
+0

谢谢!我仍然在学习如何处理大型项目,还有偶尔出现的问题 – Jefferson

+0

@Jefferson,当然,祝你好运:) –