运算符重载C++ (Operator)

版权声明:本文为博主原创文章,转载需标明原创地址 https://blog.csdn.net/qq_42321579/article/details/82824961

下面来进行这段代码的分析:

struct node {  //定义一个结构体node(节点)

   int x;

   int y;

   int len;   //node中有3个成员变量x,y,len

   bool operator <(const node &a)const {//重载<操作符。可以对两个node使用<操作符进行比较

       return len<a.len;

   }

};

括号中的const表示参数a对象不会被修改,最后的const表明调用函数对象不会被修改!

想必看到这里对重载运算符算是有一丁点的了解吧,下面看些理论文字,更加清楚的了解关系!

C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是C++最吸引人的特性之一。 

  运算符重载是通过创建运算符函数实现的,运算符函数定义了重载的运算符将要进行的操作。运算符函数的定义与其他函数的定义类似,惟一的区别是运算符函数的函数名是由关键字operator和其后要重载的运算符符号构成的。运算符函数定义的一般格式如下:

<返回类型说明符> operator <运算符符号>(<参数表>) {      <函数体> }

成员函数运算符

运算符重载为类的成员函数的一般格式为:     <函数类型> operator <运算符>(<参数表>)     {      <函数体>     }

猜你喜欢

转载自blog.csdn.net/qq_42321579/article/details/82824961