类的const成员变量

在设计类的时候,一个原则就是对于不改变数据成员的成员函数都要在后面加 const,而对于改变数据成员的成员函数不能加 const。

(1)有 const 修饰的成员函数(指 const 放在函数参数表的后面,而不是在函数前面或者参数表内),只能读取数据成员,不能改变数据成员;没有 const 修饰的成员函数,对数据成员则是可读可写的。
(2)除此之外,在类的成员函数后面加 const 还有什么好处呢?那就是常量(即 const)对象可以调用 const 成员函数,而不能调用非const修饰的函数

class A

{

public:

    void f()

    {

        cout<<"non const"<<endl;

    }

    void f() const

    {

        cout<<" const"<<endl;

    }

};

int main(int argc, char **argv)

{

    A a;

    a.f();

    const A &b=a;

    b.f();

    const A *c=&a;

    c->f();

    A *const d=&a;

    d->f();

    A *const e=d;

    e->f();

    const A *f=c;

    f->f();

    return 0;

}

上述运行结果为:non const/ const / const / non const / non const /const

猜你喜欢

转载自blog.csdn.net/yihuanyihuan/article/details/84000499