6

是否有可能(在 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)

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

问候,阿蒂克

4

1 回答 1

10

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

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

Marco 曾在博客上写过这个:http ://blog.marcocantu.com/blog/class_operators_delphi.html

于 2013-07-31T07:26:30.883 回答