为什么这里不能接受“==”?

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.
        }
    }
}

Itemcontainer 是在别处定义的 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来比较属性。