什么样的运算符重载的呢德尔福支持?(What kinds of operator overloads

2019-08-20 07:27发布

我不知道什么样的操作符重载是可能的(与德尔福的是什么版本)? 由于操作符重载Hallvard最伟大的写了 ,我知道的:

  • 添加(左,右:类型):类型(对于“+”操作符)
  • 减去(左,右:类型):类型(为“ - ”运算符)
  • 乘(左,右:类型):类型(为“*”运算符)
  • 除(左,右:类型):类型(对于“/”经营者)
  • 隐(安勤:类型):AnotherType和
  • 隐式的(安勤:AnotherType):类型(关于隐式分配:一个:= b)的
  • 显式(安勤:类型):AnotherType和
  • 显式的(安勤:AnotherType):类型(明确assignmetns '投下':A:=(B)型

不过,我不知道是为 '=', '<=', '<', '<>', '>' 和 '> =' 经营者的名称。 难道这些存在的,从什么德尔福版本,我可以使用这些?

PS:我还在使用Delphi 2009年的时刻,所以我还会有一个强大的升级,参数,如果2010提供这些;-)

Answer 1:

其实,我找到了答案,这一点我自己,但保留了一个问题,我可以想像,人们将寻找定期此信息计算器;

运营商overloaders官方的描述可以在这里找到: http://docwiki.embarcadero.com/RADStudio/en/Operator_Overloading_(Delphi)

主要是,我一直在寻找的那些被命名为:

  • 相等,为 '=' 比较:相等(A:类型; B:型):布尔值;
  • NotEqual,为 '<>' 比较:NotEqual(一个:类型; B:型):布尔值;
  • GREATERTHAN,关于 '>' 比较:GREATERTHAN(一个:类型; B:类型)布尔值;
  • GreaterThanOrEqual,关于 '> =' 比较:GreaterThanOrEqual(一个:类型; B:型):与resultType;
  • 每种不超过,对于 '<' 比较:每种不超过(A:类型; B:型):与resultType;
  • LessThanOrEqual,关于 '<=' 比较:LessThanOrEqual(一个:类型; B:型):与resultType;


Answer 2:

我只是把我的笔记在线会话上可空类型与操作符重载,我在几个会议了。

现在,它包含了运营商,名称的表,什么工作/不工作。 WordPress的最初畸形是表,但我设法恢复它。

您也可以下载全套幻灯片和源代码演示 。

简而言之:

  • 该文件(甚至DocWiki)是不完整的,并注意可靠
  • 你不能重载不按位运算符,如BitwiseNot不被编译器支持。 你必须重载逻辑不是运营商代替。
  • 超载运营成对适用
  • 要知道现有的运营商
  • 实现隐性运营商时要非常小心

希望这可以帮助你。 让我知道如果你需要更多的信息:我已经做了相当多的生产工作与操作符重载。

--jeroen



文章来源: What kinds of operator overloads does Delphi support?