某些容易产生"invalid operator <"的情况

程序中某些类成员不能直接operator <,重载运算符的时候容易出现一些错误写法

class A
{
	int a,b;
	operator < (int rhs) {
		return (a < rhs.a || b < rhs.b);
	}
}

但是这样写就犯了 left < right && right < left 问题,修正方案

class A
{
	int a,b;
	operator < (int rhs) {
		if (a < rhs.a) {
			return true;
		}
		if (a > rhs.a) {
			return false;
		}
		if (b < rhs.b) {
			return true;
		}
		return false;
	}
}


你可能感兴趣的:(某些容易产生"invalid operator <"的情况)