AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Klassen - Deklarationsreihenfolge

Ein Thema von glkgereon · begonnen am 7. Nov 2004 · letzter Beitrag vom 7. Nov 2004
Antwort Antwort
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

Klassen - Deklarationsreihenfolge

  Alt 7. Nov 2004, 18:55
ja, also in welcher reihenfolge muss/kann ich die sachen alle deklarieren?

also ich hatte die grundstruktur so überlegt:

Delphi-Quellcode:
type
  TRechner = class(TObject)
    public //Für Alle Sichtbar
    //Konstruktor / Destruktor
      function Create:TRechner;
      procedure Free;

    //Wert setzen / auslesen
      procedure SetValue(Value:Double);
      function GetValue:Double;

    protected //Nur in Unit und Abgeleiteten Klassen Sichtbar

    private //Nur in abgeleiteten Klassen sichtbar
    //Konstruktor / Destruktor
      constructor CreateMe;
      destructor FreeMe;
    //Werte / Variablen
      DoubleValue :Double; //Double-Wert
  end;//of TRechner
aber nun motzt er was von wegen ich dürfte keine variablen (oder felder) NACH methoden deklarieren

kann ich das umgehen?



und nochwas(ich weiss, neue frage neuer thread, trotzdem):

Delphi-Quellcode:
      DoubleValue :Double; //Double-Wert

implementation

procedure TRechner.SetValue(Value:Double);
begin
  DoubleValue:=Value;
end;

function TRechner.GetValue:Double;
begin
  Result:=DoubleValue;
end;
kann ich die konstruktion mit dem setvalue und getvalue durch so eine read/write konstruktion ersetzen?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#2

Re: Klassen - Deklarationsreihenfolge

  Alt 7. Nov 2004, 19:01
Machs so

Delphi-Quellcode:
type
  TRechner = class(TObject)
  private
    FDoubleValue: Double;
  public
    constructor Create;
    property DoubleValue: Double read FDoubleValue write FDoubleValue;
  end;
Den ganzen anderen Kram brauchst Du nicht. Der Konstruktor ist i.d.R. Public, es sei denn aus irgendeinem Grund soll er nur innerhalb der Unit aufrufbar sein. Free brauchst Du nicht, überschreibt man auch nicht. IdR überschreibt man den destrucotr Destroy, aber nur wenn man was frei zu geben hat - hast Du aber nicht. Die SetValue und GetValue-Funktionen kannst Du mit dem obigen property-Befehl sparen.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Klassen - Deklarationsreihenfolge

  Alt 7. Nov 2004, 19:03
Hi,

ich verwende folgende Reihenfolge: private, protected, public, published

Delphi-Quellcode:
type
  TRechner = class(TObject)
  private
     DoubleValue :Double; //Double-Wert
     //Wert setzen / auslesen
     procedure SetValue(Value:Double);
     function GetValue: Double;
  public
    property DeinDoubleWert: Double read GetValue write SetValue;
    // oder:
    // property DeinDoubleWert: Double read DoubleValue write DoubleValue;
    constructor Create; // keine Function!
    destructor Destory; override; // keine Prozedur!
  end;
So würd ich das machen
(Das löst auch Dein zweites Problem )

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#4

Re: Klassen - Deklarationsreihenfolge

  Alt 7. Nov 2004, 19:06
noch was:

deine kommentare zu private/protected/public sind fehlerhaft:

ALLES (Auch als private deklariert) ist in der Unit sichtbar.

Der Unterschied zwischen Protected und Private ist idR der, dass man als Protected deklarierte Methoden in abgeleiteten Klassen überschreiben möchte, während als Private deklarierte Methoden nicht überschreibbar sind.
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#5

Re: Klassen - Deklarationsreihenfolge

  Alt 7. Nov 2004, 19:14
hm...

also um problem 1 zu lösen soll ich einfach den public und den private-block vertauschen...
ok

dann danke für das read/write-statement

Zitat:
Der Konstruktor ist i.d.R. Public
also ich soll den public machen...

nur das mit dem destruktor/free habbich noch nicht so ganz gecheckt...

Zitat:
Free brauchst Du nicht, überschreibt man auch nicht. IdR überschreibt man den destrucotr Destroy, aber nur wenn man was frei zu geben hat - hast Du aber nicht
also das ist ja wie ich schon sagte nur der "rumpf"...also da werden noch massig sachen zukommen, wahrscheinlich auch sachen die "createn" muss...

und free, destroy, is das nicht dasselbe?
also ich benutz immer free zum freigeben...
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Klassen - Deklarationsreihenfolge

  Alt 7. Nov 2004, 19:16
Zitat von glkgereon:
und free, destroy, is das nicht dasselbe?
also ich benutz immer free zum freigeben...
Hi,

Free ruft intern Destroy auf. Dabei wird aber noch überprüft ob Self <> nil, bevor aufgerufen wird.
Als Selbst-Klassen-Ersteller solltest Du schön Destroy überschreiben und am Ende Deines Destroys mit inherited den geerbten Konstruktor aufrufen.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#7

Re: Klassen - Deklarationsreihenfolge

  Alt 7. Nov 2004, 19:21
naja, da ich von TObect erbe kann ich mir das inherited destroy; ja sparen, oder?

THX, ich habs verstanden...

eine frage noch:

wann ich, wenn ich nur ne unit mit ner typendeklaration drin hab die syntax überprüfen lassen,bzw halt die normale überprüfung?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Klassen - Deklarationsreihenfolge

  Alt 7. Nov 2004, 19:26
Zitat von glkgereon:
naja, da ich von TObect erbe kann ich mir das inherited destroy; ja sparen, oder?

THX, ich habs verstanden...
Hi,

Ja, im Prinzip schon, aber wenn Du mal vorhaben solltest das TObject durch etwas anderes zu ersetzen, brauchst Du das inherited nicht mehr zu ergänzen.
Ich würde es einfach "Aus Gewohnheit" hinmachen.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#9

Re: Klassen - Deklarationsreihenfolge

  Alt 7. Nov 2004, 22:03
jup....
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Antwort Antwort


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 10: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