【发布时间】:2011-09-05 20:40:42
【问题描述】:
我遇到了主题所说的错误:assignment of data-member ‘RootBoxT<CORE::DoubleWrapper>::innerBox_’ in read-only structure。我“可能”知道为什么会发生这种情况,但我需要更多地了解规则。
我将RootBoxT的所有实例都设为const,而RootBoxT类的成员变量*innerBox_也是const类型。在RootBoxT 类的一个方法中,我需要更新*innerBox_,所以我调用delete 来释放innerBox_ 的内存并为其分配另一个const 指针。
我的问题是:
- 这是正确的方法吗,当我需要更新 const 指针的值时,我只需将其删除并分配另一个 const 指针?
- 这个错误是因为
RootBoxT的实例是const但是其中一个方法改变了成员变量指向的位置吗?如果不是,为什么会发生?如果是这样,我应该将这些实例更改为非常量吗?
我真的搞砸了我当前项目的 const 关键字,因为我对 C++ 还很陌生。谢谢。
【问题讨论】:
-
您不能更新
const对象的值。const表示您无法更改它。此外,您最好发布您的代码,因为不清楚您是在谈论 const 指针还是指向 const 对象的指针。
标签: c++ constants structure readonly