Delphi中的运算符重载

时间:2013-07-31 07:14:04

标签: delphi operator-overloading

是否可能(在Delphi中)重载类中的运算符。 我前段时间读过这篇文章只能用于记录,但我发现的信息类似于以下代码中的类:

type
   TMyClass = class
     class operator Implicit(a: Integer): TMyClass;
   end;


class operator TMyClass.Implicit(a: Integer): TMyClass;
begin
   // ...
end;

来自地址的(修改): http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/operatoroverloads_xml.html

但是当我尝试使用它时(在Delphi XE中)我得到:

预期的程序,功能,财产或VAR(E2123)

我想为矩阵操作创建自己的简单类,并且在类中使用重载操作符的可能性是非常期待的机会。

Regars, ARTIK

1 个答案:

答案 0 :(得分:10)

在某些版本的编译器中可以使用类的运算符重载。它适用于.net和iOS编译器。对于Windows和Mac,不支持。

iOS编译器可以支持此功能,因为它使用ARC管理类实例的生命周期。如果桌面编译器曾经切换到ARC,那么您可以期望支持运算符重载。

Marco在博客中写道:http://blog.marcocantu.com/blog/class_operators_delphi.html