AGB  ·  Datenschutz  ·  Impressum  







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

Fragen zur Zentralabituraufgabe 2007

Ein Thema von rand · begonnen am 5. Dez 2008 · letzter Beitrag vom 5. Dez 2008
 
rand

Registriert seit: 5. Dez 2008
2 Beiträge
 
#1

Fragen zur Zentralabituraufgabe 2007

  Alt 5. Dez 2008, 10:20
Hallo!

Ich habe eine Frage zur Abituraufgabe. Dort soll eine Warteschlange mit Delphi realisiert werden.
Wie eine Warteschlange funktioniert weiß ich und Konzepte der OOP kenne ich auch (von C++), jedoch nicht (sehr gut) in Delphi.

Hier die Aufgabe + Musterlösung:

Prüfungsaufgabe GK 1 Delphi (Aufgabe)

Unterlagen für die Lehrkraft GK 1 Delphi (Musterlösung)

Delphi-Quellcode:
{ Aus der Musterlösung: }
procedure TQueue.enqueue (pObject: TObject);
var lNewNode:TNode;
begin
  lNewNode:=TNode.create(pObject,nil);
  if self.isEmpty
  then begin
    hHead:=lNewNode;
    hTail:=lNewNode;
  end
  else begin
    hTail.setNext(lNewNode);
    hTail:=lNewNode;
  end;
end;
1. Ich verstehe hierbei nicht, warum keine Zeiger verwendet werden (z.B. hTail.setNext(xy) setzt ja in dieser Prozedur einen TNode und keinen Zeiger auf einen TNode). Ist das nicht viel zu langsam und auch nicht ein wenig verwirrend bei einer Warteschlange (die ja fast wie eine Liste ist)?

2. Der Prozedur TQueue.enqueue wird ja ein Parameter vom Typ TObject übergeben. Warum ist das wieder kein Zeiger? Es muss doch bei TNode.create(...) wieder kopiert werden, oder nicht? Steht der Präfix "p" (von pObject) nicht für Pointer?

3. Vererbung, Polymorphie und andere OOP-Konzepte kenne ich aus C++. Soweit wie ich die Klasse TQueue verstanden habe, soll zur Benutzung der Klasse ja ein TObject der Methode enqueue übergeben werden. Wie kann ich jetzt eigene Datenstrukturen übergeben bzw. wie kann ich die speziellen Eigenschaften meiner Klasse dann in enqueue (oder anderen Methoden von TQueue) verwenden?

Dieselbe Fragestellung an einem Beispiel:

TXY von TObject ableiten:

Delphi-Quellcode:
type
  TXY = class(TObject)
    public
      x : integer;
  end;
Ich kann ja ein Objekt der Klasse TXY an TQueue.enqueue übergeben, doch da ja nirgendwo mit Zeigern gearbeitet wird, wie soll man bitteschön in der Methode enqueue (oder irgendeiner anderen) dann auf den Integer x der Klasse zugreifen? Es wird doch nur der Basisklassenanteil kopiert oder sehe ich das falsch?

MfG rand
  Mit Zitat antworten Zitat
 


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 18:21 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