TSL语言基础 > Object TSL > 方法 > 算符重载

算符重载的案例    

  • 下边是一个复数的例子,范例中重载了+和<运算符:

    t:=new TComplex();
    t.vReal:=10;
    t.vImaginary:=100;
    t1:=t+t;
    echo t1.vReal,"\r\n";
    echo t.vReal;

    Type Tcomplex=class
      vReal,vImaginary;
      function Operator +(data) begin
        r:=new Tcomplex();
        if ifreal(data) then
          r.vReal:=vReal+data else begin
          r.vReal:=vReal+data.vReal;
          r.vImaginary:=vImaginary+data. vImaginary;
       end;
       return r;
      end;
      function Operator<(data,isLeft);
    End;
    Function Operator Tcomplex. <(data,isLeft);
    Begin
      If ifreal(data) then
      V:=vReal<data
      else
      V:= (vReal^2+vImaginary^2)<data.vReal^2+data.vImaginary^2;
      If not isLeft then V:=not V;
      Return V;
    End;