What are the semantics of a const member function?

后端 未结 9 747
囚心锁ツ
囚心锁ツ 2020-12-06 16:51

I understand that the function is not allowed to change the state of the object, but I thought I read somewhere that the compiler was allowed to assume that if the function

9条回答
  •  既然无缘
    2020-12-06 17:54

    const methods are also allowed to modify static locals. For example, the following is perfectly legal (and repeated calls to bar() will return increasing values - not a cached 0):

    class Foo
    {
    public:
        int bar() const
        {
            static int x = 0;
            return x++;
        }
    };
    

提交回复
热议问题