Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi doppelte Variable in abgeleiteter Klasse (https://www.delphipraxis.net/138424-doppelte-variable-abgeleiteter-klasse.html)

hoika 10. Aug 2009 10:19


doppelte Variable in abgeleiteter Klasse
 
Hallo #,

ich habe hier eine Klasse mit einem Record.

Delphi-Quellcode:
FieldExist
  bField1: Boolean
end;
Ja, das ist eine DB-Klasse. ;)

Jetzt leite ich die Klasse aber von einer anderen ab,
die eine Funktion FieldExist (mit einem Parameter) besitzt.

schreibe ich jetzt

Delphi-Quellcode:
if FieldExist.bField1
meckert der Compiler und will den Parameter aus der Oberklasse haben.

Schreibe ich

Delphi-Quellcode:
if Self.FieldExist.bField1
ist der Comiler zufrieden.

Warum will er im ersten Fall das FieldExist der Oberklasse ?


Heiko

jaenicke 10. Aug 2009 11:14

Re: doppelte Variable in abgeleiteter Klasse
 
Zitat:

Zitat von hoika
Warum will er im ersten Fall das FieldExist der Oberklasse ?

Der Compiler nimmt stets das, was näher an der Verwendung dran ist. Und da gibt es dann anscheinend eine gleichnamige Struktur in deiner aktuellen Klasse / Methode. Dann wird natürlich auch die genommen.

hoika 10. Aug 2009 11:28

Re: doppelte Variable in abgeleiteter Klasse
 
Hallo,

nun ja, näher ist ja die abgeleitete Klasse,
aber stimmt schon, das gilt nur für virtuelle Methoden.

Hatte mich nur gewundert und schon angefangen aus
FieldExist FieldExist_ zu machen,
bis ich das mit dem Self herausbekommen habe.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:31 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 by Thomas Breitkreuz