gpt4 book ai didi

c++ - 从重载的下标运算符调用虚函数

转载 作者:行者123 更新时间:2023-11-27 23:23:35 25 4
gpt4 key购买 nike

我试图在抽象类上重载下标运算符([]),重载调用的函数在具体对象中实现。

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 时抛出错误。

Initial value of reference to non-const must be an lvalue

有人知道我正在尝试做的事情的语法吗?

最佳答案

问题是您要返回对从 getValue 返回的临时值的引用。要么让两个函数都返回 double&,要么都返回 double

关于c++ - 从重载的下标运算符调用虚函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11109811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com