Announcement

Collapse
No announcement yet.

Was ist ein Konstruktor ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Was ist ein Konstruktor ?

    Hallo!

    Ich habe ein wenig verständnisprobleme, was es mit Konstruktoren auf sich hat. Ich weiß nur, daß sie ganz nützlich sein können. Aber wie wende ich sie an und vorallem wann? Was ist überhaupt ein Konstruktor und wozu dient er?
    Ich würde mich sehr freuen, wenn mir da jemand helfen kann.
    Es wäre schön, wenn ich einige kleine Programmbeispiele, die nicht zu umfangreich sein sollten, bekommen könnte.
    Ich bedanke mich schon recht herzlich im voraus bei dem Helfer.

    Viele Grüße,
    Marco

  • #2
    Um es einfach auszudrücken: Ein Konstruktor ist für die Initalisierung eines Objektes zuständig. Ein Destruktor für das Aufräumen.

    z.B du hast folgende Klasse und Du willst, daß nach dem Erzeugen des Objektes das Objekt weiß, wann es erzeugt wurde:

    <pre>
    type
    TMyClass = TObject
    public
    FErzeugungsdatum: TDateTime;
    FSpeicher: TPointer;

    constructor Create;
    destructor Destroy;
    end;

    constructor TMyClass.Create;
    begin
    inherited; // Damit auch Initalisierung von Basisklasse TObject durchgeführt wird
    FErzeugungsdatum := now;
    GetMem(FSpeicher, 1000);
    end;

    destructor TMyClass.Destroy;
    begin
    FreeMem(FSpeicher);

    inherited Destroy; // Aufräumungsarbeiten der Basisklasse
    end;

    ...

    MyObject := TMyClass.Create; // Objekt weiß wann es erzeugt wurde
    ...
    MyObject.Free; // Objekt wieder freigeben und dabei aufräumen
    </pre>

    Ich hoffe das hilft fürs erste

    Comment


    • #3
      Um es einfach auszudrücken: Ein Konstruktor ist für die Initalisierung eines Objektes zuständig. Ein Destruktor für das Aufräumen.

      z.B du hast folgende Klasse und Du willst, daß nach dem Erzeugen des Objektes das Objekt weiß, wann es erzeugt wurd:

      <pre>
      type
      TMyClass = TObject
      public
      FErzeugungsdatum: TDateTime;
      FSpeicher: TPointer;

      constructor Create;
      destructor Destroy;
      end;

      constructor TMyClass.Create;
      begin
      inherited; // Damit auch Initalisierung von Basisklasse TObject durchgeführt wird
      FErzeugungsdatum := now;
      GetMem(FSpeicher, 1000);
      end;

      destructor TMyClass.Destroy;
      begin
      FreeMem(FSpeicher);

      inherited Destroy; // Aufräumungsarbeiten der Basisklasse
      end;

      ...

      MyObject := TMyClass.Create; // Objekt weiß wann es erzeugt wurde
      ...
      MyObject.Free; // Objekt wieder freigeben und dabei aufräumen
      </pre>

      Ich hoffe das hilft fürs erste

      Comment

      Working...
      X