C++
程序中,在一个const
函数中修改一个静态数据成员是可以正常运行的:class A
{
public:
static int a; // static data member
void set() const
{
a = 10;
}
};
但是在一个const
函数中修改非静态数据成员将不起作用:
class A
{
public:
int a; // non-static data member
void set() const
{
a = 10;
}
};
为什么一个 const
成员函数能够修改一个 static
数据成员?
void clobber(A &x) const { x.a = 0; }
是被允许的! - user1084944const
表示一个对象的成员函数不能修改该对象。它可以修改同一类的其他对象,或与类相关联而不是特定实例的static
数据。(或者是为了违反这个规则而创建的mutable
数据成员)。 - Davislor