AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Abstrakter Fehler bei Instanzenübergabe

Ein Thema von faux · begonnen am 19. Jul 2006 · letzter Beitrag vom 20. Jul 2006
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#11

Re: Abstrakter Fehler bei Instanzenübergabe

  Alt 20. Jul 2006, 13:22
Zitat von mkinzler:
Zitat:
Nun ja, eben ganze Klassen Wink .
Laut Theorie ist eine klasse abstrakt, wenn mindestens eine Methode abstrakt ist, daß ist klar. Delphi unterscheidet halt noch zwischen abstrakt und vollständig abstrakt. Von normalen abstrakte Klassen (Klassen mit nicht-abstrakten Methoden) lassen sich Intanzen bilden. Andere Sprachen verweigern dies.
Ich bezog mich auf die Kennzeichnung eines abstrakten Typs/Members, sonst wäre ja schon Dax' Aussage falsch gewesen, da es eben wie du sagst der Theorie nach auch in Delphi abstrakte Klassen gibt. Das abstract-Keyword wird aber (bislang und mit Win32) nur bei Methoden zugelassen.
Von deinen voll- und halbabstrakten Klassen habe ich aber noch nie etwas gehört .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.859 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Abstrakter Fehler bei Instanzenübergabe

  Alt 20. Jul 2006, 13:42
Zitat:
Von deinen voll- und halbabstrakten Klassen habe ich aber noch nie etwas gehört Grübelnd... .
Gibt es auch nicht.
In der OOP-Theorie sind Klassen abstrakt, soweit sie eine abstrakte Methode besitzen. Man kann dann keine Instanzen davon bilden. In Delphi schon. Das wollte ich damit ausdrücken.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

Re: Abstrakter Fehler bei Instanzenübergabe

  Alt 20. Jul 2006, 13:45
Zitat von Dax:
Zitat von mkinzler:
Was außer Methoden kann noch abstrakt sein?
Properties - wenn man von Delphi weggeht und sich zb. Chrome ankuckt. Dort gehen auch so nette Sachen wieproperty Foo: string; read; abstract;
Das kannst du doch (über Umwege) auch in Delphi machen:

Delphi-Quellcode:
type
  TMyDing = class(TObject)
  private
    { Private-Deklarationen }
    function GetDing: string; virtual; abstract;
    procedure SetDing(const Value: string); virtual; abstract;
  public
    { Public-Deklarationen }
    property Ding: string read GetDing write SetDing;
  end;
Damit muß in Nachfahre nur die Get und Set Methode implementiert werden und fertig.

Edit: OT: Das ist mein 1000. Beitrag
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#14

Re: Abstrakter Fehler bei Instanzenübergabe

  Alt 20. Jul 2006, 13:59
Zitat von mkinzler:
Zitat:
Von deinen voll- und halbabstrakten Klassen habe ich aber noch nie etwas gehört Grübelnd... .
Gibt es auch nicht.
In der OOP-Theorie sind Klassen abstrakt, soweit sie eine abstrakte Methode besitzen. Man kann dann keine Instanzen davon bilden. In Delphi schon. Das wollte ich damit ausdrücken.
Das hat aber nichts mit der Anzahl der nichtvirtuellen Methoden zu tun.
Auch in anderen Sprachen ist mir soetwas nicht bekannt, schließlich sind dort schon "halb-abstrakte Klassen" nicht mehr instanzierbar.
Zitat:
Delphi unterscheidet halt noch zwischen abstrakt und vollständig abstrakt. Von normalen abstrakte Klassen (Klassen mit nicht-abstrakten Methoden) lassen sich Intanzen bilden.
@Mabuse: Nichts anderes macht der Chrome-Compiler daraus . Es ist also wirklich nur eine kleine Schreibersparniss, keine neue Form von abstrakten Membern.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.859 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Abstrakter Fehler bei Instanzenübergabe

  Alt 20. Jul 2006, 14:15
Zitat:
Das hat aber nichts mit der Anzahl der nichtvirtuellen Methoden zu tun.
Ich dachte Delphi würde in diesem Fall ein Fehler ausgeben.
Ein Interface ist eine Art vollständig abstrakte Klasse ( ohne Attribute).
Markus Kinzler
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz