C++中的常量成员函数,在参数列表后,加const关键字,声明为常量成员函数,表示该成员函数可以读取类中的数据成员,但不能对其进行修改。
代码如下(示例):
class complex { public: complex(double r=0,double i=0) //初值列表,这样赋值可以提高程序的运行效率 :re(r),im(i) {} complex& operator +=(const complex&); double real() const {return re;} double imag() const {return im;} private: double re,im; friend complex& __doapl (complex*,const complex&); };
C++陷阱:
上面的类如果进行声明对象为:
complex cx(1,2); cout<<cx.read(); cout<<cx.imag();
是没有错误的;
如果使用者使用这个类声明对象为如下方式:
const complex cx(1,2); cout<<cx.read(); cout<<cx.imag();
在声明对象前加cosnt关键字进行修饰,表达方式是没有错误的,但是如果类中的成员函数如果没有使用const关键字进行修饰,则编译器会报错。