重载运算符==抱怨“必须只接受一个参数”

2024-03-16

我正在尝试超载operator==,但编译器抛出以下错误:

‘bool Rationalnumber::operator==(Rationalnumber, Rationalnumber)’ must take exactly one argument

我的一小段代码如下:

bool Rationalnumber::operator==(Rationalnumber l, Rationalnumber r) {
  return l.numerator() * r.denominator() == l.denominator() * r.numerator();
}

宣言:

bool operator==( Rationalnumber l, Rationalnumber r );

有谁知道为什么会抛出错误?


If operator==是一个非静态数据成员,应该只采用一个参数,因为比较将与隐式this范围:

class Foo {
  bool operator==(const Foo& rhs) const { return true;}
};

如果您想使用自由运算符(即不是类的成员),那么您可以指定两个参数:

class Bar { };
bool operator==(const Bar& lhs, const Bar& rhs) { return true;}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重载运算符==抱怨“必须只接受一个参数” 的相关文章

随机推荐

  • 拖动 UITableView

    我正在开发一个 iPhone 应用程序 我想将表格视图 而不是单元格 拖动到屏幕中的某个点 我的桌面视图位于屏幕的下半部分 图像位于屏幕的上半部分 当我滚动表格查看下面的行时 表格实际上应该向上移动到图像上方 y pos 减小 高度会增加
  • 如何编写一个仅解析标签之间具有特定文本的对象的 BeautifulSoup 过滤器?

    我正在使用 Django 和 Python 3 7 我想要更有效的解析 所以我正在阅读有关 SoupStrainer 对象的内容 我创建了一个自定义的来帮助我仅解析我需要的元素 def my custom strainer self ele
  • 网站单元测试

    我很好奇其他开发人员如何测试他们的网站 PHP 特别是在我的例子中 但这可能跨越多种语言 我已经在一个网站上工作了一年多了 我真的很想自动化我在版本之间所做的大量回归测试 这个特定站点位于 CodeIgniter 中 因此我对我的模型进行了
  • 当类未实现 IEnumerable 时,GetEnumerator 方法是否仍应具有幂等性

    这个问题是另一个问题的基础question https stackoverflow com questions 4189581 should an ienumerable iterator on a queue dequeue an ite
  • 带 onClick 的按钮在 React 中只能工作一次

    我需要在 React 应用程序中制作折叠菜单 但带有 onClick 的按钮只能工作一次 我创建了一个布尔变量 当我点击按钮时它应该会改变 但我只能点击按钮一次 此后 a 不起作用 它处于非活动状态 let isOpened false c
  • 将指针容器转换为智能指针?

    有没有一种简洁 通用的方法来转换std容器 例如vector 常规 哑指针 vector lt T gt 例如 boost shared ptr vector lt boost shared ptr
  • 清除向量或定义新向量,哪个更快

    哪种方法更快并且开销更少 方法一 void foo std vector lt int gt aVector for int i 0 i lt 1000000 i aVector clear aVector push back i 方法二
  • 使用iOS SDK在运行时创建plist?

    我是 iPhone 开发新手 我想知道是否有任何示例 Objective C 代码可以通过从网络服务器获取数据来在运行时创建 plist 并且我想知道数据的格式应该是什么 以便我可以在运行时轻松创建 plist 非常简单NS词典 http
  • 如何在 python 中使用 numba.jit 将计算值传递到列表排序?

    我正在尝试使用 Python 中的 numba jit 函数中的自定义键对列表进行排序 简单的自定义键可以工作 例如我知道我可以使用如下所示的绝对值进行排序 import numba numba jit nopython True def
  • 查找 Elixir/Erlang 内存文件的长度?

    在 Elixir 或 Erlang 中 如果我有一个内存文件 如何找到它的字节长度 ok fd file open ram read write file write fd hello 不确定是否有更好的方法 但这就是我所做的 def ge
  • 如何迭代命令行上传递的所有文件行?

    我通常在 Perl 中这样做 随便 pl while lt gt do whatever then cat foo txt whatever pl 现在 我想用 Python 来做这件事 我试过sys stdin但我不知道如何像我在 Per
  • iOS - Path 等应用程序如何优化每个单元格(几乎)不同的表格单元格?

    这就是我目前遇到的问题 我有一个应用程序 可以使用 UITableView 显示类似 Facebook Path 的提要 假设我的数据源有大约 200 个项目 并且并非所有单元格都具有相同的内容和单元格高度 有些有图像 有些没有 通过使用以
  • 如何获取交易结果和状态

    我正在尝试使用以太坊区块链和 Solidity 合约 我目前正在部署合约并对其执行一些操作 但我想知道如何获取特定交易的一些 反馈 回调 返回 例如 有没有办法将事务的状态设置为 0 错误 并仍然获取事件 if id length lt 0
  • 从 C# 中的文本文件中读取特定行数

    我正在使用以下 StreamReader 来读取文本文件 string temp fs ReadToEnd readlines i temp 我想从文本文件中读取特定行数 比如说 仅从第 1 行到第 300 行 然后将这些行写入数组的一个元
  • Twitter Bootstrap 适合触摸屏吗?

    我正在考虑将 Twitter Bootstrap TB 用于移动网络应用程序 TB的下一个版本 版本3 https github com twitter bootstrap tree 3 0 0 wip js 号称 移动优先 然而 查看包含
  • IDE 对 Dispatchers.IO 协程中的阻塞调用发出警告

    我正在开发一个简单的应用程序 需要来自 URL 调用的数据 这是相关的代码部分 class NewsFeed AppCompatActivity override fun onCreate savedInstanceState Bundle
  • 当前在网络浏览器中流式传输实时视频的最佳实践?

    我们开发了一款 IP 摄像机产品 可通过 RTSP UDP 传输 H 264 MPEG4 MJPEG 视频 它有一个 Web 界面 目前我们使用 VLC Firefox 插件来允许在浏览器中查看实时 RTSP 流 但 Firefox 正在放
  • 使用 C# 更改 Windows 服务凭据的最佳方法是什么

    我需要使用 C 更改现有 Windows 服务的凭据 我知道有两种不同的方法可以做到这一点 更改ServiceConfig 参见pinvoke net 上的 ChangeServiceConfig http www pinvoke net
  • 从 MS Access 中的字符串提取/转换日期

    我正在尝试使用以下模式从字符串中提取日期 时间 并将它们转换为 Access 中的日期类型 2012 年 4 月 8 日 21 26 49 由 SMITH MD JOHN 123 于 2012 年 4 月 2 日上午 11 11 01 确认
  • 重载运算符==抱怨“必须只接受一个参数”

    我正在尝试超载operator 但编译器抛出以下错误 bool Rationalnumber operator Rationalnumber Rationalnumber must take exactly one argument 我的一