2

我希望为具有此功能的 C 类创建一个接口:

friend bool operator==(const C& a, const C& b);*

我希望为 C 创建一个模拟以用于测试驱动的目的。

我试着这样做:

class IC
{
    virtual friend bool operator==(const IC& a, const IC& b) = 0;
};

我应该怎么办?

4

1 回答 1

0

operator ==是二元运算符。要做到这一点virtual,它必须是类成员。

class IC
{
    virtual bool operator==(const IC& b) = 0;
};

在这种情况下,第一个参数==是隐含的this

您的声明是关于一个自由函数,而不是一个类成员。

编辑:正如评论中所建议的,您应该避免这种情况,而是实现一个compare功能或类似的功能。

于 2012-06-21T07:37:37.740 回答