📜  一元重载运算符 cpp - C++ (1)

📅  最后修改于: 2023-12-03 15:21:26.462000             🧑  作者: Mango

一元重载运算符 in C++

在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++中如何重载一元运算符,并给出了一个重载运算符-的例子。需要注意的是,重载运算符需要注意运算符的优先级和结合性,避免出现歧义。