delphi – 如何为相互依赖的记录定义隐式转换操作符?
发布时间:2020-12-15 10:08:13 所属栏目:大数据 来源:网络整理
导读:我在Delphi 2006中使用操作符重载记录(请不要通过告诉我不要回答这个问题) 我有两个记录类型,隐式运算符重载.它们都只是在实现模块,而不是通过界面暴露出来. 我的问题是,现在他们是相互依赖的,我不知道如何将第二个类型声明为编译器.我知道如何使用函数,过程
我在Delphi 2006中使用操作符重载记录(请不要通过告诉我不要回答这个问题)
我有两个记录类型,隐式运算符重载.它们都只是在实现模块,而不是通过界面暴露出来. 我的问题是,现在他们是相互依赖的,我不知道如何将第二个类型声明为编译器.我知道如何使用函数,过程和类来实现,而不是记录. 以下是我正在尝试做的简化示例: implementation type TMyRec1 = record Field1 : Integer; class operator Implicit(a: TMyRec2): TMyRec1; // <---- Undeclared Identifier here. end; TMyRec2 = record Field2: Integer; class operator Implicit(a: TMyRec1): TMyRec2; end; class operator TMyRec1.Implicit(a:TMyRec2): TMyRec1; begin Result.Field1 := a.Field2; end; class operator TMyRec2.Implicit(a:TMyRec2): TMyRec2; begin Result.Field2 := a.Field1; end; 解决方法
您不能有记录类型的转发声明.在第二个类型中定义两个隐式运算符:
type TMyRec1 = record Field1 : Integer; end; TMyRec2 = record Field2: Integer; class operator Implicit(a: TMyRec2): TMyRec1; class operator Implicit(a: TMyRec1): TMyRec2; end; 从the help起:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Delphi中拖动无边框窗口的5种方法
- Perl Getopt ::长相关问题 – 互斥命令行参数
- java – 启动spring web mvc应用程序时出现异常
- 可以在Delphi XE中使用“未使用”类
- 文件相似性判断 -- 超级特征值(super feature)
- 大数相乘的算法(instructed by Western University Prof.S
- 调用约定(pascal,fastcall,stdcall,thiscall,cdecl)区别等
- 如何找到For Each(VB.NET)中的最后一个循环?
- perl – 当文本小部件中的光标位置发生变化时,自动调用子例
- astilectron之Go语言golang的图形界面