一个有关const函数的问题,求大神照应啊!!!
double &operator[](int idx){
if (idx<length&&idx>=0)
return data[idx];
throw BoundsError();
}
double &operator[](int idx)const{
剩下的都和上面的一样
}
其中
class Array{
double* data;
unsigned int length;
public:
Array(unsigned len=0):length(len){
data=(len ? new double[len]:NULL);
}
};
const放在函数的什么位置都有什么作用呢~
比如返回值是const型,const的参量还有就是const放在大括号之前的这种~~~!~!~
[解决办法]
返回值是const型:返回值不能做左值
const的变量:函数内部不能修改变量的值
const放在大括号之前:函数不能修改类成员变量的值
[解决办法]
double &operator[](int idx)const //常函数 表明这里面不改变成员变量的值
const double &operator[](int idx)//返回值是一个常量
double &operator[](const int idx) //表明idx在这个函数中不会改变他的值