类中的const成员函数,以前看书说的是函数内不修改变量的值,就只有这一个作用。后来发现好像还有些别的不同,先看下面代码:
#include <iostream>
using namespace std;class A
{
int m,n;
public:
A(int a,int b):m(a),n(b){}
int get()
{
return m;
}
int get() const
{
return m+n;
}
};int main()
{
A a(3,5);
const A b(3,5);
cout<<a.get()<<endl;
cout<<b.get()<<endl;
return 0;
}
代码的输出结果是3和8,那是不是在有2个同名的函数(1个带const)时,非静态对象调用没const的,静态对象调用有const的?
#include <iostream>
using namespace std;class A
{
int m,n;
public:
A(int a,int b):m(a),n(b){}
int get()
{
return m;
}
int get() const
{
return m+n;
}
};int main()
{
A a(3,5);
const A b(3,5);
cout<<a.get()<<endl;
cout<<b.get()<<endl;
return 0;
}
代码的输出结果是3和8,那是不是在有2个同名的函数(1个带const)时,非静态对象调用没const的,静态对象调用有const的?
http://baike.baidu.com/view/1065598.htm
那不是const常量的2个都可以调用,是不是默认调用的是不是const的函数