【问题标题】:Operator Overloading in DelphiDelphi中的运算符重载
【发布时间】:2013-07-31 07:14:04
【问题描述】:

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

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

问候, 文章

【问题讨论】:

    标签: delphi operator-overloading


    【解决方案1】:

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

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

    Marco 曾在博客中讨论过这个问题:http://blog.marcocantu.com/blog/class_operators_delphi.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-02
      • 2010-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      相关资源
      最近更新 更多