霹雳mit续集主噬血圣英:error C2166: l-value specifies const object

来源:百度文库 编辑:九乡新闻网 时间:2024/05/05 14:04:52

自写了一个类,在类中定义了成员变量,在其中的成员const函数中试图修改该成员变量就会出现:error C2166: l-value specifies const object 的错误。

对于const修饰(const是在函数后,表明不改变对象)的成员函数而言无法对成员变量进行修改,一个解决方法是将该成员变量标记为mutable。

class Demo  
{  
public:  
boot getFlag() const  
{  
  m_nAccess++;  
  return m_bFlag;  
}  
private:  
int  m_nAccess;  
bool m_bFlag;  
};  
int main()  
{  
return 0;  
}  

上述的代表就会出现C2166的错误,而下面的代码则不会出现错误了:

class Demo  
{  
public:  
boot getFlag() const  
{  
  m_nAccess++;  
  return m_bFlag;  
}  
private:  
mutable int  m_nAccess;  
bool m_bFlag;  
};  
int main()  
{  
return 0;  
}