【问题标题】:C++ overloading comparison operators vs casting operators [duplicate]C ++重载比较运算符与强制转换运算符[重复]
【发布时间】:2018-12-22 17:02:39
【问题描述】:

为什么在重载bool/string之类的强制转换运算符时不需要指定返回类型

operator bool()

但是我们需要在重载比较运算符(!, >,

bool& operator ! ()

我们为什么不将其定义为bool operator bool()

【问题讨论】:

  • int operator bool() 没有意义。
  • 但我希望它是bool operator bool()
  • comparison operator < 可能返回 bool 以外的其他类型,即使不寻常。作为“命名操作员”:42 <in> container.
  • 谢谢,这就是我一直在寻找的答案!

标签: c++ operator-overloading overloading


【解决方案1】:

bool operator bool() 中的返回类型。

【讨论】:

  • 我知道,但是为什么我们这里不需要指定返回值(字符串也一样)
  • @Ak-Mo 我不明白这个问题是什么意思。
  • 编辑了问题,简而言之,我试图理解为什么我们不将其定义为:bool operator bool()
  • @Ak-Mo 因为这充其量是多余的,并且建议您最多可以在两个插槽中放置不同的类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-10
  • 2014-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多