gpt4 book ai didi

c++ - 二进制表达式 ('RadioDevice' 和 'const RadioDevice' 的无效操作数)

转载 作者:太空狗 更新时间:2023-10-29 21:15:33 29 4
gpt4 key购买 nike

我在这个问题上卡得很厉害,我试图使用 find() 在列表中找到一个对象。下面是代码:

std::vector<RadioDevice> radioDevices;
public:
void add(CartesianLocation location, std::list<RadioSignal<RadioDevice>> observedSignals){
for(RadioSignal<RadioDevice> radioSignal : observedSignals) {
if (std::find(radioDevices.begin(),
radioDevices.end(),
radioSignal.getRadioDevice()) != radioDevices.end()) {
radioDevices.push_back(radioSignal.getRadioDevice());
}
}
}

RadioSignal 扩展了 RadioDevice,它是一个纯抽象类。我在 if (*__first == __value_) in find()

处遇到以下错误

Invalid operands to binary expression ('RadioDevice' and 'const RadioDevice')

最佳答案

因此,假设您有一个定义为 RadioDevice 的类:

class RadioDevice {
public:
virtual std::string getMacAddress();
virtual RadioDeviceType getType();
virtual double getFrequency();
virtual std::string getIdentifier();
virtual void setIdentifier(std::string identifier);
virtual int getTxPower();
};

您需要为您的 RadioDevice 类定义一个 operator==。您可以通过添加

bool operator==(const RadioDevice& rhs, const RadioDevice& lhs) {
return rhs.getIdentifier() == lhs.getIdentifier();
}

但是,这假定两个 RadioDevice 对象如果具有相同的标识符则相等。

关于c++ - 二进制表达式 ('RadioDevice' 和 'const RadioDevice' 的无效操作数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37436468/

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