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 |
