出于某种原因,我现在收到此错误' [DCC错误] MyFile.pas(52):E2137方法'分配'在基类中找不到'。这是我的Assign程序的一部分,在我再添加一个,最后一个Assign。
之前一直工作正常procedure Assign(MyClass: TMyClass); overload; override;
procedure Assign(MyClass: ThisService.MyClass); overload; override;
procedure Assign(MyClass: ThatService.MyClass); overload; override;
procedure Assign(MyClass: TXMLMyClass); overload; override;
procedure Assign(MyClass: pbStruct1Messages.TMyRecord); overload; override;
procedure Assign(MyClass: pbStruct2Messages.TMyRecord); overload; override;
答案 0 :(得分:5)
当您使用override
时,您说您使用从父类继承的相同签名覆盖虚拟方法。如果父类没有带有该签名的虚方法,那么编译器会正确地抱怨它无法找到它。
检查祖先类以确认该方法确实存在。如果它不存在,则不要使用override
标记后代类中的那个。
答案 1 :(得分:-3)
procedure Assign(MyClass: pbStruct1Messages.TMyClass); overload; override;
procedure Assign(MyClass: pbStruct2Messages.TMyClass); overload; override;
我认为这是错误,你做两个等于参数的TMyClass。使用某些
procedure Assign(MyClass: pbStruct1Messages); overload; override;
procedure Assign(MyClass: pbStruct2Messages); overload; override;