某些容易產生"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;
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章