本人理解运算符重载实质 就类似函数重载 运算符重载都可以写成一个函数 里面传入参数 来调用 运算符重载不是必须的 但是重载后会方便很多。
小例子 一个类实现 ++ 和+某个数重载 大于号重载 有一点注释
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" class Number { private: int lowValue; int highValue; public: Number(int lowValue, int highValue); void Print(); Number operator++(); //这个类为返回值类型 Number operator+(Number& n); bool operator<(Number& n); }; bool Number::operator<(Number& n) { if (this->highValue<n.highValue) //说真的这个this->highValue 左边类的highValue 不是很理解 先记住把 { return true; } else { return false; } } Number::Number(int lowValue, int highValue) { this->highValue = highValue; this->lowValue = lowValue; } Number Number::operator++() { lowValue++; highValue++; return *this; //应该难理解的是这一句 当时学的时候老师没说自己也没想 本人拙见 this为这个函数的地址 例如 00401000 | 0001 0002 this为00401000 *this返回这个函数头 0001 0002 } Number Number::operator+(Number& n) { lowValue = lowValue + n.lowValue; highValue = highValue + n.highValue; return *this; } void Number::Print() { printf("%d ", lowValue); printf("%d ", highValue); } void Test() { Number p(1, 1), p2(3, 4); if (p<p2) { cout << "True" << endl; } (p + p2).Print(); } int main(int argc, char* argv[]) { Test(); return 0; }