mutable:这个关键字可以用于声明类内的非静态数据成员及非常量数据成员,当一个类内的数据成员被 mutable 声明后,类的常量函数中可以更改这个数据成员的值
我们知道如果一个类的成员函数被声明为常量函数,则这个函数不能更改类内的数据成员的值,但数据成员声明为 mutable 后就可以了.看下例
class MyStu
{
public:
mutable int m_na;
int m_nb;
MyStu()
{
m_na = 0;
m_nb = 2;
}
void Add(void) const
{
m_na++; //可以,因为 m_na 被声明为 mutable
}
void Sub(void) const
{
m_nb--; //不可以,编译不能通过,提示 C2166 错误
}
};
mutable 关键字的使用
最新推荐文章于 2023-02-09 09:09:54 发布