const:這裏表示const函數,只有類的成員函數可以這樣用,它表示這個函數不能修改類的成員變量,但是有壹些成員變量還是可以修改的,那就是用關鍵字mutable聲明的成員變量。舉個例子就很明白了:
class A
{
public:
A() : a(0){}
void func() const;
private:
int a;
};
這裏func就是const的,如果裏面修改了a,那編譯就不會通過:
void A::func() const { a = 1; } //編譯不通過
但是如果,a聲明的時候是這樣的:
mutable int a;
那麽上面的func()就可以編譯通過,mutable表示這個變量不受const影響