函数前后的const,什么功能呢
一个类中有这样两个成员函数
const SomeValue( ) const;
SomeValue( );
请教:
1.两者的区别
2.跟重载的关系
3.前后的const功能是什么
[解决办法]
1。const成员函数保证不会修改调用它的对象
2。普通对象可以调用非const成员函数,也可以调用const成员函数
而const对象,只能调用const成员函数,
普通对象优先调用非const成员函数,从而形成重载
3。前面的const应该有个返回类型吧,const int fun()const;之类
修饰返回类型的,说明返回值是个const int类型
[解决办法]
const SomeValue( ) const;
有没有少掉什么东西?
看得迷糊,第二个const修饰的是this.
[解决办法]
1.在第一个中,不可以修改数据成员(mutable的除外);在第二个中可以。
2.两个函数构成重载关系。如果该对象是const的,只可以调用第一个;如果该对象是非const的,默认掉用第二个。
3.后面的const表示不对数据成员进行修改,前面的const表示对函数返回数据的修改限制。
[解决办法]
前面的 const 修饰函数的返回值是一个 const 类型的值
后面的 const 修饰这个函数是一个 常成员函数,也就是它不修改所在类的成员
有无 后面的const 可以构成重载
区别么,就不需要说了 ~