我知道如何为同一类的两个对象定义运算符重载函数,但是我在网上搜索了所有地方,或者在StackOverflow中搜索了其他主题,但没有得到正确的答案。
我需要一个简单的示例来添加或比较来自不同类的对象。我不知道是否要在类之外定义运算符重载,是否应该让两个类的朋友成为朋友?
这是使用自由运算符的好例子。
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;
}
您仅应在必要时与他们成为熟识类型的朋友;如果可以从公众成员中充分观察到国家,则无需与他们成为朋友。