(delphi11最新学习资料) Object Pascal 学习笔记---第5章第3节(运算符重载)

本文介绍了ObjectPascal中的运算符重载技术,包括如何定义和使用自定义加法、比较等运算符,以及隐式和显式类型转换、交换性、类型提升的规则和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5.3.4 运算符重载

​ 另一个与记录相关的 Object Pascal 语言特性是运算符重载,即在数据类型上自己定义标准操作(加法、乘法、比较等)的能力。基本思想是你可以实现一个加法运算符(一个特殊的 Add 方法),然后使用 + 符号来调用它。要定义运算符,你需要使用 class operator 关键字的组合。

注解:通过重用现有的保留字,语言设计者成功地做到了对现有代码没有产生影响。他们最近在关键字组合中经常这样做,比如 strict privateclass operatorclass var

​ 这里的 class 与类方法有关,这是我们将在更后面的章节中要探讨的概念(在第12章)。在指令之后,你写出运算符的名称,例如 Add:

type
  TPointRecord = record
  public
    class operator Add(A, B: TPointRecord): TPointRecord;

然后使用 + 符号调用 Add 运算符,如你所期望:

var
  A, B, C: TPointRecord;
begin
  C := A + B;

那么有哪些可用的运算符呢?基本上是语言的整个运算符集,因为你不能定义全新的运算符:

  • 强制类型转换运算符: ImplicitExplicit
  • 一元运算符:Positive, Negative, Inc, Dec, LogicalNot, BitwiseNot,
    Trunc, 和 Round
  • 比较运算符:Equal, NotEqual, GreaterThan, GraterThanOrEqual, LessThan, 和LessThenOrEqual
  • 二元运算符:Add, Subtract, Multiply, Divide, IntDivide, Mod
=============================================================== !!! 在安装最新版本之前,必须彻底卸载以前的RAD Studio版本!! =============================================================== 如何安装RAD Studio 11 Version 28.0.42600.6491 + InterBase 2020 Version 14.2.0.532 下载:https://altd.embarcadero.com/download/radstudio/11.0/radstudio_11_106491a.iso。 大小:5.58 GB(5,997,154,304字) crc: 2 eb9b67f md5: ae8f36b125f512ef266bb54df7803223 sha - 1: d87422acab8e019019593abd42fe6e3e429d6cf8 1. 安装RAD Studio ISO Image [radstudio_11_106491a. ISO Image]然后打开它… 2. 启动RAD Studio ESD Installer [radstudio_11_esd_106491a.exe]作为管理员 3.同意许可协议,单击下一步进入许可输入页面,不要单击安装 4. 现在在KeyPatch,点击Generate Serial Number, Patch RAD Studio Setup过程 5. 返回安装程序- RAD Studio 11单击“返回”,然后选择“使用现有许可”,单击“安装” 6. 在RAD Studio Platform Selection中,选择功能以完成安装 7. 第一次以管理员身份运行rad studio 如何用RAD Studio 11修补选定的InterBase安装 启动InterBase服务器管理器,单击Start按钮,此时服务实例将不会启动 在KeyPatch中选择“IB Product/Instance”,单击“Generate IB Serial Number, Patch IB, Save IB SLIP” 现在在InterBase服务器管理器上单击开始按钮。InterBase服务应该正在运行 ===============================================================
一、IDE 1、对IDE的高DPI支持,涵盖了最新的4k+显示器,整个字体和图标更干净、更清晰。 2、多显示器和多窗口改进:在多个窗口中同时设计和编辑同一个表单的代码 3、完全重建的欢迎页,具有原生的外观和感觉,以及适合IDE的UI,并可自定义布局和内容 4、C++代码格式化器。使用clang-format自动布局你的C++代码 5、改进了对VCL和IDE的远程桌面支持 6、FireMonkey设计时指南。通过可视化的线条和增强的边距和填充支持更快地进行原型设计 二、VCL 1、丰富的编辑组件更新删除了XP的依赖性,并为TRichEdit控件引入了新的功能。 2、VCL样式增加了设计时支持:通过在设计时立即看到你的样式表格和控件在运行时的样子,使时尚的UI原型更快。 3、增加了对TreeViews中CheckBoxes的支持,每个点都支持3种状态(部分、变暗、排除)以帮助定制UI。 4、新的TDBLabeledEdit组件提供了TLabelEdit的数据感知版本,以加快原型设计。 5、大量的VCL改进,包括默认的表格大小和字体,例外对话框的复制按钮,备忘录和RichEdit的边距等等。 三、FMX 1、改进了对Windows和桌面的FMX高DPI支持,桌面UI明显优越 2、在WebBrowser组件中支持微软的WebView 2控件(Edge Chromium)。 3、支持最新的Android 30 API和最新的计费API,并迁移到使用AndroidX库 4、Android支持多个classes.dex文件,简化了对外部Android依赖的整合 四、Platforms 1、Delphi macOS 64位ARM编译器和工具链,包括为Intel/Arm AppStore提交构建通用二进制文件 2、Delphi语言支持二进制小数和数字分离器 3、改进了C++工具链,对C++类型的RTTI进行了大修,包括在Delphi类型上使用typeid。 4、为Delphi类型改进了C++风格的RTTI 5、在Win32和Win64上改进了CMake的质量并大大改进了异常处理。 五、RTL 1、RTL质量重点。TZipFile、大数据结构的64位改进、蓝牙LE 2、System.DateUtils中TDateTime的记录帮助器 3、System.SysUtils中TCurrency的Record Helper使货币的工作更加简单和容易。 4、C++ RTL的改进包括在Delphi类中使用make_shared和make_unique,对Delphi字符串的string_view支持,以及Delphi/C++字符串的简单转换。 六、LSP 1、使用Visual Studio Code来编辑Delphi源代码,并具有完整的代码完成功能 2、LSP对Include文件的认识 3、自动重新启动LSP服务器 4、用Tab键自动完成代码 5、支持类辅助工具 6、赋值数组时的数组建议 七、Data 1、新版本中的FireDAC为PostgreSQL、Oracle和Firebird数据库提供了具体的改进。 2、HTTP和REST客户端库已经扩展了超时机制,支持HTTP/2、TLS 1.3、Base64 URL编码。 3、新组件TRESTRequestDataSetAdapter简化了向服务器上传数据集的过程 4、新的低流量RAD Server Lite允许无限制地部署您的多层解决方案,以及完全可扩展的Server引擎。 5、对于DataSnap,REST URL映射逻辑现在是完全可配置的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值