gpt4 book ai didi

c++错误C2662无法将 'this'指针从 'const Type'转换为 'Type &'

转载 作者:IT老高 更新时间:2023-10-28 13:02:08 29 4
gpt4 key购买 nike

我正在尝试重载 c++ operator== 但我遇到了一些错误...

错误 C2662:“CombatEvent::getType”:无法将“this”指针从“const CombatEvent”转换为“CombatEvent &”

这个错误在这一行

if (lhs.getType() == rhs.getType())

见下面的代码:

class CombatEvent {

public:
CombatEvent(void);
~CombatEvent(void);

enum CombatEventType {
AttackingType,
...
LowResourcesType
};

CombatEventType getType();
BaseAgent* getAgent();

friend bool operator<(const CombatEvent& lhs, const CombatEvent& rhs) {

if (lhs.getType() == rhs.getType())
return true;

return false;
}

friend bool operator==(const CombatEvent& lhs, const CombatEvent& rhs) {

if (lhs.getType() == rhs.getType())
return true;

return false;
}

private:
UnitType unitType;
}

有人可以帮忙吗?

最佳答案

CombatEventType getType();

需要

CombatEventType getType() const;

您的编译器正在提示,因为该函数被赋予了一个 const 对象,而您试图在该对象上调用一个非 const 函数。当一个函数得到一个 const 对象时,对它的所有调用都必须是整个函数中的 const (否则编译器无法确定它没有被修改) .

关于c++错误C2662无法将 'this'指针从 'const Type'转换为 'Type &',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12068301/

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