【发布时间】:2013-01-27 18:50:41
【问题描述】:
class a
{
const std::string * ptr;
void setPtr(const std::string & text)
{
ptr = &text; //it's wrong, I can set something to the pointer only at definition
}
}
解决办法是什么?指向我的对象的指针必须是 const(a 类的对象不能修改它),但我需要在运行时更改指针(它指向的位置)。
【问题讨论】:
-
我很困惑。不能修改,但需要修改?
-
@Marc Glisse 丢弃限定符 [-fpermissive]
-
这和C++11有什么关系?
-
@David 我接受 c++11 解决方案,但在这种情况下,我看到代码没问题,并且我的代码中有 consts 错误。
-
我看不到什么被丢弃了。当人们不发布他们的真实代码而只发布他们认为相关的代码时,这是一个常见的问题。