首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个有关const函数的有关问题,求大神照应啊

2012-10-07 
一个有关const函数的问题,求大神照应啊!!!double &operator[](int idx){if (idxlength&&idx0)return da

一个有关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在这个函数中不会改变他的值

热点排行