Loading...

Archive

Posts Tagged ‘Pascal’

Pascal 中的操作符定义与重载操作符定义

November 2nd, 2008 No comments

用 Vista 的感觉很好。我一直没用过 Vista ,现在 Vista 和 Windows 7 一起用,感觉真不错哈!

看了柯南兄的Blog,感觉他的操作符描述很模糊,在这里我想讲一遍。

不多废话了:

    1 program cnPhil_operator;
    2 
    3 operator **(a,b:longint)p:longint;//定义双longint**操作
    4 var q:real;
    5 begin
    6      q:=exp(b*ln(a));
    7      p:=trunc(q);
    8 end;
    9 
   10 operator **(a,b:string)p:longint;//定义双string**操作,注意声明同名运算符时,运算量类型一定不能一样,比如有了一个双integer的-操作,你不能再次声明双integer的-操作,但是你可以声明双string的-操作,否则会重载!
   11   var
   12     i,j:longint;
   13     ok:integer;
   14   begin
   15        val(a,i,ok);
   16        val(b,j,ok);
   17        p:=trunc(i**j);//调用以前声明的双longint的**操作,其实运算符声明也可以递归实现!但此处不是递归,而是利用了运算符可以因不同运算量类型而重复定义的特性。
   18   end;
   19 
   20 
   21 
   22 
   23 begin
   24         writeln('2^3=',2**3);
   25         writeln('''2''^''3''=','2'**'3');
   26 end.
另外贴一张我的本本跑 Vista 的图,现在我的本本可是四系统啊(XP,Vista,Win7,Ubuntu),很强吧?
发件人 cnPhil/Photo
Categories: Informatics Tags: ,