常成员函数
一个const对象可以调用const函数,但不能调用非const成员函数。必须将关键字const放在函数参数表之后,才能说明该函数是一个const成员函数。
声明常成员函数的格式如下:
类型标识符 函数名(参数列表) const;
定义定义如下:
类型标识符 类名::函数名(参数列表) const {//函数体}
在类中定义定义如下:
类型标识符 函数名(参数列表) const {//函数体}
在常成员函数里,不能更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数。如果将一个对象说明为常对象,则通过该对象只能调用它的const成员函数,不能调用其他成员函数。
//error: C3490: 由于正在通过常量对象访问“x”,因此无法对其进行修改
//error: C3490: 由于正在通过常量对象访问“y”,因此无法对其进行修改
加上const属性,不可修改一般的成员变量
1 void Dialog::getxy() const 2 { 3 this->x=900;//error: C3490: 由于正在通过常量对象访问“x”,因此无法对其进行修改 4 this->y=600;//error: C3490: 由于正在通过常量对象访问“y”,因此无法对其进行修改 5 }
原文:http://www.cnblogs.com/denggelin/p/5658672.html