//***** 运算符重载 ***** class Num { public: Num() { std::cout << "构造函数..." << std::endl; i = 10; } ~Num() { std::cout << "析构函数..." << std::endl; } void operator++() // 运算符重载函数就是在这里,operator是C++关键字,++代表的是对++这个运算符重载,这是前置运算符重载 { ++ i; // 成员变量自加 } //const Num operator+(const Num &r) // 加法运算符重载 //{ //i + r.GetValue(); //} void SetValue(int x) { i = x; } int GetValue() { return i; } private: int i; }; //***** 运算符重载应用 ***** void test1() { Num m_Num; std::cout << "没有运算符重载的i的值:" << m_Num.GetValue() << std::endl; ++m_Num; // 运算符重载使用,对象要能够自加,必须重载自加运算符 std::cout << "有运算符重载的i的值:" << m_Num.GetValue() << std::endl; //Num a; //Num b; //Num c = a + b; /* 为什么对象自加,会调用运算符重载函数,是因为在C++中,一切运算符运算操作,都是通过函数来进行的。 例如: 1 + 2,C++编译器就自动查找标准库,找到一个这样的运算符重载函数来进行运算:operator+(int,int) 例如: 1.2 + 1.3,C++编译器就自动查找标准库,找到一个这样的运算符重载函数来进行运算:operator+(float,float) 其余的形式同样的道理 */ } //