为什么这里不能接受“==”?
Why is "==" not acceptable here?
我正在编写单元测试并比较两个对象以确保它们相同但我收到错误 no operator "==" matches these operands -- operand types are: Item == Item
这是我的代码,其中注释了相关行:
SCENARIO("A container can be created, and items added and removed from it.", "[container]") {
GIVEN("A container and some items.") {
Container merchant("Merchant", "Merchant Inventory");
Item sword;
WHEN("An item is added to an empty container.") {
merchant.addItem(sword);
THEN("The item is in position 0 in the container.") {
Item firstItem = merchant.get_contents().front();
REQUIRE(firstItem == sword); // I'm trying to assert that the item in the vector that
} // is returned is the item that was entered.
}
}
}
Item
和 container
是在别处定义的 class。
根据要求,这里是 Item
class:
的定义
class Item {
public:
Item();
};
就是这样 - 它是一个占位符 class,直到我的队友编写正确的代码。
容器背后的代码目前也受到限制,但以下是我认为相关的部分:
class Container {
private:
std::vector<Item> contents; // Capcity limited to 10 to begin with
public:
Container(std::string name, std::string description);
std::vector<Item> get_contents();
};
我还没有定义Containers
中的方法,因为我先写测试代码。
==
不能用来简单比较两个不同的对象,除非专门定义为class来比较属性。
我正在编写单元测试并比较两个对象以确保它们相同但我收到错误 no operator "==" matches these operands -- operand types are: Item == Item
这是我的代码,其中注释了相关行:
SCENARIO("A container can be created, and items added and removed from it.", "[container]") {
GIVEN("A container and some items.") {
Container merchant("Merchant", "Merchant Inventory");
Item sword;
WHEN("An item is added to an empty container.") {
merchant.addItem(sword);
THEN("The item is in position 0 in the container.") {
Item firstItem = merchant.get_contents().front();
REQUIRE(firstItem == sword); // I'm trying to assert that the item in the vector that
} // is returned is the item that was entered.
}
}
}
Item
和 container
是在别处定义的 class。
根据要求,这里是 Item
class:
class Item {
public:
Item();
};
就是这样 - 它是一个占位符 class,直到我的队友编写正确的代码。
容器背后的代码目前也受到限制,但以下是我认为相关的部分:
class Container {
private:
std::vector<Item> contents; // Capcity limited to 10 to begin with
public:
Container(std::string name, std::string description);
std::vector<Item> get_contents();
};
我还没有定义Containers
中的方法,因为我先写测试代码。
==
不能用来简单比较两个不同的对象,除非专门定义为class来比较属性。