【发布时间】:2015-06-15 07:14:29
【问题描述】:
我正在尝试实现一次用于 Set 和一次用作 Get 的运算符 [],我需要区分这两种情况,如 get 的情况,如果返回,我需要抛出异常值等于-1;而在 Set 的情况下,我只是覆盖该值。 苹果[2] = X; y=苹果[2];
我不知道如何区分这两种模式,我的函数签名是:
double& Security::operator[](QuarterType index){
if(index<0 || index>MAX_QUATERS){
throw ListExceptions::QuarterOutOfBound();
}
return evaluation[index].getValueAddress();
}
【问题讨论】:
-
对您问题的稀疏描述向我表明,您将从重新设计中受益。我认为开始这个问题的一个更好的方法是写一个
set方法和一个get方法,然后询问如何将它们结合起来,以便你可以通过operator[]来完成。 -
这看起来类似于更常见的请求,在尝试从集合中读取缺失值时抛出
operator[ ],但仍允许插入新值。
标签: c++ c++11 operator-overloading