首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >虚拟函数不能成为朋友

虚拟函数不能成为朋友
EN

Stack Overflow用户
提问于 2012-06-21 15:32:11
回答 1查看 1.8K关注 0票数 2

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

代码语言:javascript
运行
复制
friend bool operator==(const C& a, const C& b);*

为了测试驱动的目的,我希望为C语言创建一个模拟。

我试着这样做:

代码语言:javascript
运行
复制
class IC
{
    virtual friend bool operator==(const IC& a, const IC& b) = 0;
};

我该怎么办?

EN

回答 1

Stack Overflow用户

发布于 2012-06-21 15:37:38

operator ==是一个二元运算符。要使其成为virtual,它必须是类成员。

代码语言:javascript
运行
复制
class IC
{
    virtual bool operator==(const IC& b) = 0;
};

在本例中,==的第一个参数隐式为this

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11133524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档