C++运算符重载(operator overload)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010870167/article/details/81990382

C++中提供了运算符重载机制(operator overload 简称:Op).它可以为自定义数据类型重载运算符.实现构造数据类型也可以具有像基本数据类型一样的运算特征(C中没有改机制).

示例:

using namespace std;

    struct Student{
        int age;
        string name;
    };

    bool operator ==(Student stu1,Student stu2){
        if(stu1.age == stu2.age && stu1.name == stu2.name)
            return true;
        else
            return false;
    };

    int main(){
        Student stu1 = {12,"C++ Op"};
        Student stu2 = {14,"C no Op"}
        //  if(operator ==(stu1,stu2))
        //      return true;
        //  else
        //      return false;
        // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
        // 等同于
        // if (stu1 == stu2)
        //      return true;
        // else
        //      return false;
        cout << "stu1 compare stu2" << operator ==(stu1,stu2) << endl;
        return 0;
    }

使用运算符重载在一些结构体重复使用运算符的地方省却很多时间,同时也可以优化代码.

猜你喜欢

转载自blog.csdn.net/u010870167/article/details/81990382