错误C2440:'=':无法从'const BWAPI :: UpgradeType'转换为'const BWAPI :: Type *'
在这一行
this->generalType = type;
有什么问题?因为不应该允许UnitType extends Type?
class CombatEvent {
public:
CombatEvent& setUnitType(const UnitType& type);
const Type* getGeneralType() const;
private:
UnitType unitType;
const Type* generalType;
}
// implementation
CombatEvent& CombatEvent::setUnitType(const UnitType& type) {
this->generalType = type;
this->unitType = type;
return *this;
}
答案 0 :(得分:4)
您需要获取地址:
this->generalType = &type;
答案 1 :(得分:0)
您正在指定对指针的引用。正确的代码:
this->generalType = &type;
您可以查看这些链接
What are the differences between pointer variable and reference variable in C++?
答案 2 :(得分:0)
使用BWAPI类型时存在一个基本问题。
1. BWAPI :: Type是一个模板化类,包含所有类型中常见的所有实用程序函数。没有必要使用它。无法知道它是UnitType还是UpgradeType,它只包含一个整数作为基础类型。
2。无需将BWAPI类型转换为指针或引用。编译器将其解析为整数,对它没什么好看的。您会在代码中的任何地方使用const int&
吗?