转自:http://blog.163.com/xuehai7097@126/blog/static/85668072009102025949424/
(一)常成员函数
声明 类型说明符 函数名(参数表)const;
注意:
1.const 是函数类型的一个组成部分,因此在函数的定义部分也要带const关键字
2.常成员函数不能更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数
(这就保证了在常成员 函数中绝对不会更新数据成员的值)
3.如果将一个对象说明为常对象,则通过该对象只能调用它的常成员函数,而不能调用
其他成员函数(C++从语法机制上对常对象的保护,也是常对象唯一的对外接口方式)
4.const关键字可以用于对重载函数的区分,例如,如果在类中这样声明:
void print();
void print()const;
这是对print的有效重载
class R
{
public:
R();
void print(); (1)
void print() const; (2)
};
int main()
{
R a;
a.print; //调用(1)
const R b;
b.print; //调用(2)
}
(二)常数据成员
class A
{
public:
A(int i);
const int & r;
private:
const int a;
static const int b;
};
const int A::b = 10; //静态常数据成员在类外说明和初始化
A::A(int i):a(i),r(a); //常数据成员只能通过初始化列表来获得初值
{ }