C++ 一元运算符重载 ( - )
一元运算符只对一个操作数进行操作
一元运算符通常出现在它们所操作的对象的左边,比如 !obj
、-obj
和 ++obj
但有时它们也可以作为后缀,比如 obj++
或 obj--
/** * file: main.cpp * author: 简单教程(www.twle.cn) * * Copyright © 2015-2065 www.twle.cn. All rights reserved. */ #include <iostream> class Distance { private: int feet; // 0 到无穷 int inches; // 0 到 12 public: // 所需的构造函数 Distance(){ feet = 0; inches = 0; } Distance(int f, int i){ feet = f; inches = i; } // 显示距离的方法 void displayDistance() { std::cout << "F: " << feet; std::cout << " I:" << inches; std::cout << "\n"; } // 重载负运算符 ( - ) Distance operator- () { feet = -feet; inches = -inches; return Distance(feet, inches); } }; int main() { Distance d1(1, 10), d2(-5, 110); -d1; // 取相反数 d1.displayDistance(); // 距离 D1 -d2; // 取相反数 d2.displayDistance(); // 距离 D2 return 0; }
编译和运行以上范例,输出结果如下:
F: -1 I:-10 F: 5 I:-110