![]() |
Delphi-Version: XE2
Compilerfehler: E2137 Method not found in base class
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen!
Ich erhalte bei folgendem simplen Konstrukt einen Compilerfehler:
Delphi-Quellcode:
unit uTest1;
interface type TTestBase = class protected function DoRead(var AData; const ABytesToRead: Cardinal): Boolean; overload; function DoRead(var AData; const ABytesToRead: Cardinal; out ABytesRead: Cardinal): Boolean; overload; virtual; end; implementation function TTestBase.DoRead(var AData; const ABytesToRead: Cardinal): Boolean; begin // end; function TTestBase.DoRead(var AData; const ABytesToRead: Cardinal; out ABytesRead: Cardinal): Boolean; begin // end; end.
Delphi-Quellcode:
Vieleicht kann mir jemand auf die Sprünge helfen.
unit uTest2;
interface uses uTest1; type TTest = class(TTestBase) protected function DoRead(var AData; const ABytesToRead: Cardinal; out ABytesRead: Cardinal): Boolean; override; <--- hier end; implementation function TTest.DoRead(var AData; const ABytesToRead: Cardinal; out ABytesRead: Cardinal): Boolean; begin // end; end. Danke. |
AW: Compilerfehler: E2137 Method not found in base class
Bei AData fehlt der Typ. Die Signaturen der beiden Methoden scheint für den Compiler nicht eindeutig verschieden zu sein.
Ich würde den 4. Parameter als optionalen Defaultparameter implementieren. |
AW: Compilerfehler: E2137 Method not found in base class
Danke. Wenn ich die beiden Klassen in derselben Unit definiere, funktioniert es.
Bin gerade dabei, die Klassen in getrennte Units auszulagern. |
AW: Compilerfehler: E2137 Method not found in base class
Zitat:
Delphi-Quellcode:
TStream = class(TObject)
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; overload; virtual; procedure ReadBuffer(var Buffer; Count: Longint); procedure WriteBuffer(const Buffer; Count: Longint); ... |
AW: Compilerfehler: E2137 Method not found in base class
In der zweiten Unit hast du die Methode mit "override" deklariert. In der ersten Unit ist in der Basisklasse die entsprechende Methode allerdings nicht "virtual", oder sehe ich das falsch?
|
AW: Compilerfehler: E2137 Method not found in base class
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz