📅  最后修改于: 2023-12-03 15:21:26.462000             🧑  作者: Mango
在C++中,重载运算符是指用于自定义类类型的运算符。其中一元重载运算符是指只有一个参数的运算符。C++支持多种一元重载运算符,例如:++、--、-、+等。本文将重点介绍在C++中如何重载一元运算符。
一元重载运算符的语法如下:
返回类型 operator 运算符 (参数列表) {
//重载的运算符操作
}
其中,返回类型可以是任意类型,运算符表示的是要重载的运算符,参数列表是该运算符的参数列表,其后的花括号内是要重载的运算符的实际操作。
下面举一个重载一元运算符的例子来说明具体的方法。我们定义一个Person类,它有两个私有成员age和name,其中age是一个整数型,name是一个字符串型。我们将重载运算符-,用于计算一个Person对象的年龄之差。具体代码如下:
#include <iostream>
using namespace std;
class Person {
private:
int age;
string name;
public:
Person(int a, string n) {
age = a;
name = n;
}
int getAge() {
return age;
}
string getName() {
return name;
}
int operator-(Person p) {
return age - p.getAge();
}
};
int main() {
Person p1(20,"Tom");
Person p2(25,"Jerry");
cout << p1.getName() << "和" << p2.getName() << "的年龄差为" << p2-p1 << "岁" << endl;
return 0;
}
在上面的代码中,我们定义了一个Person类,然后在其中重载了一元运算符-,用于计算一个Person对象的年龄之差。在主函数中,我们定义了两个Person对象p1和p2,并输出了它们的名字和年龄差。运行结果如下:
Tom和Jerry的年龄差为5岁
本文介绍了在C++中如何重载一元运算符,并给出了一个重载运算符-的例子。需要注意的是,重载运算符需要注意运算符的优先级和结合性,避免出现歧义。