我希望为具有此功能的C类创建一个接口:
friend bool operator==(const C& a, const C& b);*
我希望为测试驱动目的创建一个C模拟器。
我尝试这样做:
class IC
{
virtual friend bool operator==(const IC& a, const IC& b) = 0;
};
我该怎么办?
答案 0 :(得分:0)
operator ==
是二元运算符。要使它virtual
,它必须是类成员。
class IC
{
virtual bool operator==(const IC& b) = 0;
};
在这种情况下,==
的第一个参数隐含this
。
您的声明是关于自由函数,而不是类成员。
编辑:正如评论中所建议的那样,你应该避免这种情况,而应该实现compare
函数或类似功能。