STL Liste Inhalte ausgeben

Hi.
Hab das genauso gelöst. Mein Problem ist jetzt noch, dass die User-Objekte alle in einer liste gespeichert wurden und ich nicht weiß, wie ich die Objekt der Liste ansprechen kann, um von denen die get-Funktionen aufrufen zu lassen.
Der Überladene Operator bekommt also kein einzelnes Objekt in seine Funktion rein, wie im Beispiel, sondern die Liste.
Wie gesagt ist meine Frage jetzt wie ich auf die Objekt der Liste zugreifen kann.
Wovon redest du? Zeig den entsprechenden Code. Ich weiß nicht was du damit meinst.
Habe es jetzt etwas abgeändert - jetzt hat er ein Problem mit dem <<operator bzw dem Iterator.
Binärer Operator '<<': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'const User' akzeptiert (oder keine geeignete Konvertierung möglich)
Du hast den Code verändert und es geht nicht mehr. Evlt. war es keine gute Idee den Code zu ändern... ;-]
Hier mein Code bis jetzt:

Code:
template < typename T > void printList( const std::list< T > &listRef );
ostream& operator<<(ostream& out,User&);

template < typename T > void printList( const std::list< T > &listRef )
{
	std::ostream_iterator< T > output( cout, " " );
	std::copy( listRef.begin(), listRef.end(), output );

}

ostream& operator<<(ostream& out,User& temp) 
{
	return out << temp.getPass()<<temp.getUser(); 
}
Warum sind getPass() und getUser() nicht als const deklariert? Warum nennst du einen Parameter "temp" - das ist nie ein guter Name für eine Variable, außer in einem swap Algorithmus...

Gruß
 
Habe auch noch eine Frage.
Habe nun bei mir die Klasse "Object" als Abstrakte Klasse, mit den Subklassen "Hotel" und "Office" abgeändert.

Dadurch hat sich auch die Listendeklaration geändert:

C++:
list <Object*> objectliste;
objectliste.push_back(new Hotel(address,value,profit,name,inhalt[5])); //Objekt erzeugen
//oder
objectliste.push_back(new Office(address,value,profit,area,price_sm)); //Objekt erzeugen

Nun meckert der Comipler natürlich bei der Ausgabe der Objekte.

C++:
for_each(objectliste.begin(), objectliste.end(), mem_fun_ref(&Object::print));

//void std::const_mem_fun_ref_t<_Result,_Ty>::operator ()(const _Ty &) const' : cannot convert parameter 1 from 'Object *' to 'const Object &'

bzw.

C++:
list<Object*>::const_iterator it;
	for (it = objectliste.begin(); it != objectliste.end(); it++) 
	{
		it->print(); //invalid return type 'Object *const *' for overloaded 'operator ->'
	}
 
Zuletzt bearbeitet:
Hi.
C++:
for_each(objectliste.begin(), objectliste.end(), mem_fun(&Object::print));

bzw.

C++:
list<Object*>::const_iterator it;
	for (it = objectliste.begin(); it != objectliste.end(); it++) 
	{
		(*it)->print();
	}
Gruß
 
Zurück