Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#28

AW: Klassen-Funktion benutzen, ohne die Klasse zu erstellen

  Alt 19. Nov 2010, 10:01
Wenn du auf einer Maschine mit 32KByte die Grundzüge der Programmierung gelernt hast, prägt dich das dein restliches Leben
Was für ein Luxus.

So ganz verstehe ich die Diskussion nicht. Eine Methode ohne jeglichen Bezug zum Objekt wird über eine ungütlige Instanz aufgerufen und richtet keinen Schaden an.
Wo ist der Fehler?
Nirgens*. Es funktioniert, es schadet nicht, hat keine Seiteneffekt usw.

*Natürlich ist da ein Fehler. Der sitzt vor dem Rechner und bemerkt es nicht einmal: Eine Methode ohne Bezug zum konkreten Objekt ist eine Klassenmethode.

...Was jetzt noch fehlt wäre ein Self-Pointer-Check.
Den gibt es schon und nennt sich FastMM.
Du könntest ja einfach in alle Methoden dieses Einfügen.
Assert(Assigned(Self) and (TObject(Self) is TKlassentyp)); .
Nun ja. Hilft das bei bereits freigegebenen Instanzen?

Wenn man jeden Deppenfehler (und die Verwendung einer ungültigen Instanz ist so einer) mit Compilerschaltern ausmerzen könnte, wozu dann noch Programmieren lernen? Wieso entwickelt man nicht gleich einen Compiler, der nicht nur einen Syntaxcheck, sondern auch einen Semantikcheck durchführt?

Gegen Fehler dieser Art empfehle (nicht nur) ich das Einschalten des Switches "Self.Brain" sowie die Einhaltung elementarer Grundregeln. Dann passiert sowas einfach nicht.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat