学习:类和对象——运算符重载

什么是运算符重载?

运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型

对于个人而言,学到这里的感受就是,多了一种能够自定义方式来进行运算的方式吧,通过类似语法糖的效果operator+来自动实现相应的操作


+号运算符重载:

作用:实现两个自定义数据类型相加的运算

在+号运算符重载里面,我们可以通过两种方式来定义,一种是成员函数来实现,还有一种全局函数来实现

同样的调用方法也有两种,以下代码有体现

示例代码:

#include<iostream>
#include<string>

using namespace std;

class Person{
public:

    //成员函数实现 + 号运算符重载
    //Person operator+(Person &p1) {
    //  Person temp;
    //  temp.age = this->age + p1.age;
    //  return temp;
    //}

public:
    int age;
};

//全局函数 实现+号运算符重载
Person operator+(Person &p1, int val) {
    Person temp;
    temp.age = p1.age + val;
    return temp;
}

int main() {
    Person p1;
    p1.age = 20;
    //Person p2 = p1.operator+(p1); //调用方式有两种,这是第一种
    Person p2 = p1 + 10;//这是第二种调用方式
    cout << p2.age << endl;
    system("pause");
    return 0;
}

总结1:对于内置的数据类型的表达式的的运算符是不可能改变的

总结2:不要滥用运算符重载

猜你喜欢

转载自www.cnblogs.com/zpchcbd/p/11865686.html