JUCE - 会员功能不可行:'这个'参数有类型const

时间:2017-10-17 10:45:07

标签: c++ compiler-errors const juce

我试图通过阅读JUCE中的ValueTree来创建一个标签式窗口。

我使用以下代码将相应标签的根项目设置为树的子项(完整代码可用here)。但是,我收到错误:

  

"会员功能' getValueTree'不可行:'这个'参数的类型为' const GlobalValueTree',但函数未标记为const"。

我使用一个对象作为getValueTree()返回的树,或者函数本身是非静态的。

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

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

1 个答案:

答案 0 :(得分:4)

  

我收到错误"会员功能' getValueTree'不可行:'这个'参数的类型为' const GlobalValueTree',但函数未标记为const"

这是因为wconst,但方法getValueTree只适用于非常量DataSelectorWindow对象。

如果DataSelectorWindow对象是您编写的,并且您认为应该允许在getValueTree()个对象上调用const,请将其原型更改为:

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

如果DataSelectorWindow对象是由其他人写的,那么你的 AccelerometerPage c应该收到非常量DataSelectorWindow&,如下所示:

AccelerometerPage (DataSelectorWindow& w) {
    ...
}