dynamische elemente
-
#include <stdio.h> #include <iostream> #include <conio.h> #include <iomanip> #include <string.h> using namespace std; class Telefon { private: char Name[20]; char Vorname[20]; char Nummer[20]; Telefon* next; public: Telefon(); void einfuegen(); void einfuegen_pos(); void anzeigen(); void loeschen(); void loeschen_pos(); void clear(); /* Telefon(void){ next=0; }*/ }; Telefon::Telefon () { next = 0; } void Telefon::einfuegen() { cout << next << endl; Telefon *next_Element = new Telefon; (*next_Element).next = next; next = next_Element; cout << endl << "Vorname: "; cin >> next_Element->Vorname; cout << endl << "Nachname: "; cin >> next_Element->Name; cout << endl << "Nummer: "; cin >> next_Element->Nummer; }kann mir einer genauer erklähren was die 3 zeilen bedeuten, bin bissi verwirrt da alles gleichgesetzt wird?
Telefon *next_Element = new Telefon;
(*next_Element).next = next;
next = next_Element;
-
Das ist ein Teil einer Verketteten Liste.
Bei diesen 3 Zeilen wird ein Element zwischen 2 eingefügt (nämlich zwischen this und dem darauf folgendem Element (this->next)).
-
snoopy9134 schrieb:
Telefon *next_Element = new Telefon;Einem Zeiger auf Telefon namens next_Element wird die Adresse eines neu angelegten Telefons zugewiesen.
snoopy9134 schrieb:
[cpp](*next_Element).next = next;
// entspricht: next_Element->next = next;Der Zeiger next_Element wird dereferenziert und der Membervariable next des "bezeigten" Telefons wird die lokale Variable next zugewiesen.
snoopy9134 schrieb:
[cpp]next = next_Element;[/cpp]
Der lokalen Variable next wird next_Element (also der Zeiger auf ein Telefon) zugewiesen.
Das ganze erstellt dir eine einfach verkettete Liste von Telefonen.
Btw, stdio.h und string.h gehören in kein C++-Programm! Außerdem ist using namespace in einem Header böse.
/edit: Zu spät ...
@snoopy: Schau dir mal etwas über das EVA-Prinzip an!
-
Noch ne kleine Anmerkung:
Ich würde hier den Pfeiloperator verwenden:
(*next_Element).next = next;
next_Element->next = next;ist übersichtlicher

-
nab ma die adresse von "new Telefon"
und gleich daraufhin von "*next_Element" anzeigen lassen, und ich bekomme zwei underschiedliche adressen raus. ich dachte eigentlich dass der Zeiger next_Element auf die adresse von newTelefon zeigt und die müssten übereinstimmen, tun sie aber net.
bin n bissi verwirrt .