class A
{
public:
int vf() const;
......
} 其中的是什么意思呀,为什么后面要加一个,它有什么用呢?

解决方案 »

  1.   

    class A
    {
    public:
    int vf() const;
    ......
    } 其中的是什么意思呀,为什么后面要加一个,它有什么用呢?
      

  2.   

    表示
    class A
    {
    public:
    int vf() const;
             int m_nData;
    ......
    }
    int A::vf() const
    {
       m_nData=8;//Error! Can't modify the member data.
    }
      

  3.   

    但是下面的代码就可以了class A
    {
    public:
    int vf() const;
             mutable int m_nData;
    ......
    }
    int A::vf() const
    {
       m_nData=8;//OK
    }
      

  4.   

    const成员函数不修改类对象!!!但是可以通过其他手段(不建议这么用,在万不得意的情况下可以考虑这样做)在const成员函数里面修改类对象。
    class A {
    public:
    A(int nValue = 0) : m_nValue(nValue) {}
    virtual ~A() {} void vf() const { // !!!
    A* pA = (A*)this;
    pA->m_nValue++;
    }
             //
    private:
    int m_nValue;
    };
    还有——如果你声明一个const A类对象变量objA,如果成员函数不是const,则objA.vf()会编译出错!
      

  5.   

    const成员函数不修改类对象
      

  6.   

    const成员函数不修改类对象