zoukankan      html  css  js  c++  java
  • Return to the Basic 运算符重载 (Operator Overloading )

    type classname::operator#(arg-list){
     //
    }


    运算符重载 (Operator Overloading)
    运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。

    运算符重载与函数重载是紧密相连的。
    可以创建一个operator 函数来定义运算符的行为。通用形式如下:

    type 是具体运算返回值的类型。
    #代表需要重载的运算符。

    使用成员函数重载运算符。

    #include <iostream>
    using namespace std;
    
    class three_d{
     int x,y,z;
    public:
     three_d(){
      x=y=z=0;
     }
    
     three_d(int i,int j,int k){
      x=i;y=j;z=k;
     }
    
     three_d operator+(three_d op2);
     three_d operator=(three_d op2);
     void show();
    };
    
    //重载+
    three_d three_d::operator+(three_d op2){
     three_d temp;
     temp.x=x+op2.x;
     temp.y=y+op2.y;
     temp.z=z+op2.z;
     return temp;
    }
    
    //重载= (赋值运算符)
    three_d three_d::operator=(three_d op2){
     x=op2.x;
     y=op2.y;
     z=op2.z;
     return *this;
    }
    
    //输出x,y,z 值.
    void three_d::show(){
     cout<<x<<",";
     cout<<y<<",";
     cout<<z<<"\n";
    }
    
    int main(){
     three_d a(1,2,3),b(4,5,6),c;
     a.show();   //将输出 1,2,3
     b.show();   //将输出 4,5,6
     c.show();   //将输出 0,0,0
    
     c=a+b;    //对象a,b相加
     c.show();   //将输出 5,7,9
     
     c=b=a;    //多重赋值
     c.show();   //将输出 1,2,3
     b.show();   //将输出 1,2,3
    
     return 0;
    }
    


    还可以使用非成员函数和友元函数重载运算符。

     

  • 相关阅读:
    从头认识java-2.6 逗号操作符
    JavaScript基础知识
    特性选择器
    文本缩进
    如何使图片与导航栏对齐
    如何使用CSS选择器应用于子元素
    图像
    布局
    列表,表格和表单
    盒子
  • 原文地址:https://www.cnblogs.com/fdyang/p/2858748.html
Copyright © 2011-2022 走看看