长量成员函数
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关键字进行修饰,则编译器会报错。