我试图在抽象类上重载下标运算符([]),重载调用的函数在具体对象中实现。
class CollectionBase {
public:
double& operator[] (const int nIndex)
{
return getValue(nIndex);
}
virtual double getValue(int index) = 0;
};
class Collection : public CollectionBase
{
double getValue(int index) { return 0; }
};
我遇到的问题是我的编译器在重载中调用 getValue 时抛出错误。
非常量引用的初始值必须是左值
有人知道我要做什么的语法吗?