我如何定义一个运算符重载函数来比较来自两个不同类的两个对象?

问题描述 投票:0回答:1

我知道如何为同一类的两个对象定义运算符重载函数,但是我在网上搜索了所有地方,或者在StackOverflow中搜索了其他主题,但没有得到正确的答案。

我需要一个简单的示例来添加或比较来自不同类的对象。我不知道是否要在类之外定义运算符重载,是否应该让两个类的朋友成为朋友?

c++ function object operator-overloading operator-keyword
1个回答
0
投票

这是使用自由运算符的好例子。

bool operator==(TypeA const & a, TypeB const & b) {
  // Do comparison
}

bool operator!=(TypeA const & a, TypeB const & b) {
  return !(a == b);
}

bool operator==(TypeB const & b, TypeA const & a) {
  return a == b;
}

bool operator!=(TypeB const & b, TypeA const & a) {
  return a != b;
}

您仅应在必要时与他们成为熟识类型的朋友;如果可以从公众成员中充分观察到国家,则无需与他们成为朋友。

© www.soinside.com 2019 - 2024. All rights reserved.