1.const 用于修饰数据成员,成员函数,类对象
2.当const 修饰数据成员的时候,初始化可放在参数列表中。(其实也可以放在声明处,但是并不推荐这样使用。)被const修饰的数据成员,不能被修改。
3.当const修饰成员函数的时候,有如下几种格式:
class A
{
public:
const int fun();//1
int const fun();//2
int fun(const);//3
int fun()const;//4
int fun();//5
}
第1种和第2种修饰的是成员函数的返回值,第3种修饰的是成员函数的参数。
第4种是const成员函数,在该函数定义处,内部调用的函数也必须是第4种形式的函数,并且内部不允许修改成员变量的值,但能够访问const和非const成员变量。
注意:const关键字是能够构成重载的。第4种和第5种放在一起是正确的,但是第四种的定义应该是这样的:
int A::fun()const
{
}
4.当const修饰类对象的时候,const修饰的类对象不能修改数据,但是可以在构造函数中初始化数据,const修饰的类对象只能调用const修饰的成员函数。
非const修饰的类对象优先调用非const修饰的成员函数,若没有非const修饰的成员函数,则调用const修饰的成员函数。