怎么在常量函数内部 强制修改内成员
如何在常量函数内部 强制修改内成员.
const FriendList & operator [] (uint8 index) const
{
/*if(!m_Friends[index])
{
m_Friends[index] = new FriendList;
return *m_Friends[index];
}
*/
return *m_Friends[index];
};
由于项目需要临时做修改又不想大量动代码.注释部分为想实现的功能.
------解决方案--------------------
将你想在const成员函数中修改的成员变量声名为mutable
------解决方案--------------------
m_Friends数组声明为 mutable类型的
------解决方案--------------------
(const_cast <类名*> (this))-> m_Friends[index] = new FriendList;
const FriendList & operator [] (uint8 index) const
{
/*if(!m_Friends[index])
{
m_Friends[index] = new FriendList;
return *m_Friends[index];
}
*/
return *m_Friends[index];
};
由于项目需要临时做修改又不想大量动代码.注释部分为想实现的功能.
------解决方案--------------------
将你想在const成员函数中修改的成员变量声名为mutable
------解决方案--------------------
m_Friends数组声明为 mutable类型的
------解决方案--------------------
(const_cast <类名*> (this))-> m_Friends[index] = new FriendList;