我有类似这样的类(class):
class A{
std::string tmp;
public:
const std::string &doSomething() const{
tmp = "something";
return tmp;
}
};
方法 doSomething()
是 const
并且返回引用而不是字符串本身是非常重要的。
我看到的唯一方法是使用动态分配,例如像这样的东西:
class A{
MyClass *tmp = new MyClass();
public:
const MyClass &doSomething() const{
*tmp = "something";
return *tmp;
}
};
tmp
变量“占位符”仅在 doSomething()
中使用。
是否有其他更清晰、更好的方法来进行这种临时值存储?
最佳答案
您可以在 std::string tmp
上使用 mutable
修饰符:
class A {
mutable std::string tmp;
...
}
这将允许 const
方法修改该成员。
关于c++ - 在 const 方法中更改对象状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33596437/