Einzelnen Beitrag anzeigen

Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#2

Re: Abstract oder überhaupt nicht?

  Alt 9. Aug 2006, 13:39
Zitat von Neutral General:
Wenn man will das die Methode in der Basisklasse leer ist dann könnte man sie doch theoretisch auch einfach virtual machen und sie leer lassen. Dann würde es wenigstens nicht krachen wenn man sie aufruft...
Dass es kracht ist ein Vorteil. Das bedeutet naemlich, dass man bei der Implementierung etwas falsch gemacht hat.
Stell dir mal vor:
TStream deklariert Read(...) als virtuell, und implementiert eine leere Funktion.
TFileStream implementiert aber kein Read(...)
Wenn ich nun TFileStream.Read aufrufe, dann passiert nix - und es funktioniert auch nix. Durch abstract wird man (wie du erkannt hast) gezwungen, die Methode entweder zu deklarieren, oder weiterhin als abstract beizubehalten - durch denentsprechende Deklaration.
Die Fehlermeldung, die du erhaelst, zeigt dir, dass etwas nicht stimmt, und du kannst das Problem schnell lokalisieren. Wenn aber kein Fehler auftritt, und das Programm einfach nicht funktioniert (weil eben bspw. keine Daten aus TFileStream gelesen werden), dann sitzt man schon mal ein paar Stunden/Tage an der Fehlersuche

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat