Jennesta
Erfahrenes Mitglied
Hallo,
ich habe irgendwie das Problem das der überladene Operator mir immer nur die Speicheradresse ausgibt.
Ich habe im Hauptprogramm folgendes stehen:
In dem vector sind die Zeiger auf diverse Elemente von Klassen gespeichert.
In der Fahrzeugklasse ist dann die Funktion, die dem "os" alle privaten Variablen übergeben soll.
diese Funktion wurde hier im Fahrzeug als Virtuell deklariert und in den abgeleiteten Klassen folgendermaßen aufgegriffen
Wie gesagt das Problem ist das "cout <<
" immer nur eine hexadezimale Zahl ausgibt und mehr nichts.
Ich habe auch versucht im Hauptprogramm den Vektor zu dereferenzieren oder sonstigen Murks zu machen, den ich von normalen Zeigern her kenne wenn ich zwischen Adresse und Inhat springen möchte aber das hat nur Compiler-Fehler produziert. Wäre klasse wenn jemand mehr sieht als ich.
Grüße Jennesta
ich habe irgendwie das Problem das der überladene Operator mir immer nur die Speicheradresse ausgibt.
Ich habe im Hauptprogramm folgendes stehen:
Code:
ostream& operator<<(ostream& os, Fahrzeug& fahrzeug) {
os << fahrzeug.ostreamAusgabe(os);
return os;
}
//irgendwo im Programm
cout << PKW_vec[i];
In der Fahrzeugklasse ist dann die Funktion, die dem "os" alle privaten Variablen übergeben soll.
Code:
ostream& Fahrzeug::ostreamAusgabe(ostream& os) {
os << endl;
os << resetiosflags(ios::right) << setiosflags(ios::left);
os.width(4); // Breite 4 für ID
os << p_iID; //...
return os;
}
diese Funktion wurde hier im Fahrzeug als Virtuell deklariert und in den abgeleiteten Klassen folgendermaßen aufgegriffen
Code:
ostream& PKW::ostreamAusgabe(ostream& os) {
Fahrzeug::ostreamAusgabe(os);
os << // weitere Variablen
return os;
}
Wie gesagt das Problem ist das "cout <<
Code:
PKW_vec[i];
Ich habe auch versucht im Hauptprogramm den Vektor zu dereferenzieren oder sonstigen Murks zu machen, den ich von normalen Zeigern her kenne wenn ich zwischen Adresse und Inhat springen möchte aber das hat nur Compiler-Fehler produziert. Wäre klasse wenn jemand mehr sieht als ich.
Grüße Jennesta