您可以对允许在const对象实例中修改的变量使用mutable.这称为逻辑常量(与按位常量相反),因为对象从用户的角度来看没有改变.
例如,您可以缓存字符串的长度以提高性能.
class MyString
{
public:
...
const size_t getLength() const
{
if(!m_isLenghtCached)
{
m_length = doGetLength();
m_isLengthCached = true;
}
return m_length;
}
private:
sizet_t doGetLength() const { /*...*/ }
mutable size_t m_length;
mutable bool m_isLengthCached;
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1012 次 |
最近记录: |