Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Ich habe die Klasse

class Test
{
public:
Test *b;
int a;
};[/PHP]

und meine Funktion

[PHP]void main()
{
Test wurzel;
int i=0;

while(i<10)
{
????
}
}

Was muss ich nun in die while Schleife schreiben wenn ich möchte, das er mir insgesamt 10 Objekte vom Typ Test erstellt, und wobei b immer die Adresse des folgenden Objektes bekommt.

Ich weiß ich kann mit wurzel.b = new Test; ein neues Test objekt dynamisch erstellen. Aber wie muss ich da weiter vorgehen?

Bine

Geschrieben

Ich erzeuge einen Zeiger auf Test names pTemp. Diesem weise ich auch gleich einen Wert zu, und zwar die Adresse von wurzel.

Beim ersten Schleifendurchlauf passiert folgendes: Da pTemp auf wurzel zeigt, ist pTemp->b gleichbedeutend mit wurzel.b. In jedem Fall wird ein neues Test erzeugt, und dessen Adresse in wurzel.b gespeichert.

Danach setzt ich pTemp auf einen neuen Wert, nämlich die Adresse des gerade neu erzeugten Objekts. Dadurch wird beim nächsten Schleifendurchlauf die Adresse des neuen Tests nicht in wurzel.b, sondern im zuletzt erzeugten Test gespeichert.

Geschrieben

Wenn ich in der Schleife jetzt jeweils dem zu b gehörigen a den Wert von i zuweisen möchte, mache ich das dann so

wurzel.a = i;

Und wenn ich jetzt im Nachhinhein dann auf sagen wir mal das fünfte erzeuge Objekt zugreifen will, wie mache ich das dann? Und wie könnte ich mir z.B. die kompletten a's ausgeben lassen?

Fragen über Fragen und keine Antworten!?!?

Bine

Geschrieben

Direkt auf das fünfte a kannst du in der Liste nicht zugreifen, denn jedes Element kennt ja nur seinen Nachfolger... bzw. dessen Adresse...

Da musst du wieder mit ner Schleife ran...

Geschrieben

Ich hätte da auch eine kleine Frage am Rande:

Warum beutzt Du nicht die STL? Wenn ich es richtig verstehe, dann soll es eine Verkette Liste werden. Die STL bietet eine Verkette Liste schon an, so daß man das Rad nicht neu erfinden muß.

Der Container findet sich im <list> header.

HTH

Jan

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...