AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Sub class <-> Parent class

Ein Thema von Skyrunner2 · begonnen am 1. Mär 2005 · letzter Beitrag vom 2. Mär 2005
 
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: Sub class <-> Parent class

  Alt 2. Mär 2005, 00:56
Moin!

Du hast 2 Variablen und legst damit wohl auch 2 Instanzen an. Daher verhält es sich doch so, das jede Instanz beim anlegen mit dem Constructor ihren eigenen Speicherplatz (und Variablenspeicherplatz) bekommt. Eine Klasse implementiert nur Verhalten und Code - der dann so oft benutzt werden kann wie benötigt - er kann so oft instanziiert werden wie nötig. Auch die Variablen: Die Klasse arbeitent mit ihnen in ihren Code - hat aber keinen Speicherplatz - dieser wird erst beim anlegen der Klasse zugewiesen und dann arbeitet der Code mit den dortigen Variablen. Instanziierst du die Klasse nochmals, dann arbeitet die 2. Instanz auch mit den gleichen Variablen - da es die gleiche Klasse = gleiche Variablen - ABER andere Position im Speicher und somit auch unabhängiger Inhalt.

Eine Klasse ist wie ein Stempel - sie bietet dir ein festes Muster. Wie oft und vor allem wo du jetzt die Klasse hineindrückst oder draufdrückst um das Muster zu erhalten ist deine Sache. Du kannst den "Stempel" am Strand an x-beliebigen Positionen stempeln und genausogut in Mutti's leckerer Griesssuppe...

Das Muster ist gleich - die Lage und die Ränder, Bezugspunkt, geographische Ausrichtung etc ist von jedem Muster anders.

Delphi-Quellcode:
Type
  TObjectParent = Class
  Protected
    a : Integer;

    Procedure SetzeAZurueck;

  Public
    Procedure SetzeA(Const NewA: Integer);
    Function AMal10: Integer;
  End;

  TObjectChild = Class(TObjectParent)
  Protected
    b : Integer;

    Procedure SetzeBeideZurueck;
  Public
    Procedure SetzeB(Const NewB: Integer);
    Function SummAB: Integer;
    Function Summ10A_10B: Integer;
  End;

....

Procedure TObjectParent.SetzeAZurueck;
Begin
  A := 0;
End;

Procedure TObjectParent.SetzeA(Const NewA: Integer);
Begin
  A := NewA;
End;

Function TObjectParent.AMal10: Integer;
Begin
  Result := A;
End;

  // Child

Procedure TObjectChild.SetzeBeideZurueck;
Begin
  SetzaAZurueck; // A und deren Methode hat diese Klasse geerbt
  B := 0;
End;

Procedure TObjectChild.SetzeB(Const NewB: Integer);
Begin
  B := NewB;
End;

Function TObjectChild.SummAB: Integer;
Begin
  Result := A + B;
End;

Function TObjectChild.Summ10A_10B: Integer;
Begin
  Result := AMal10 + B * 10;
End;
Ich hoffe das wird klarer bzw. trifft das Problem.

Ansonsten wenn du wirklich den Wert von A einer Instanz von TObjectParent haben willst, dann ist doch die Frage von welcher TObjectParent Instanz? Du kannst doch so viele Instanzen anlegen bis der Speicher überquillt - daher: den Wert der Variablen A von welcher Instanz sollte er denn nehmen/nutzen um ihn dir zurück zu geben?

MfG
Muetze1
  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:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz