关于类中的常函数。如果想要在常函数内部修改成员变量的值,需要显示使用mutable来进行修饰该成员变量。
如:
class test
{
void test::fn(const& x /*x只读*/ ) const /*this只读*/
{
m_x = x;
const_cast<test*>(this)->m_x = x; //通过对this去常来进行赋值
}
mutable int x;//或者将想要在常函数中进行修改的成员变量用mutable修饰
};
常对象只能调用常函数,非常对象即可以调用常函数也可以调用非常函数,而且原型相同的常函数和非常函数可以构成重载关系。