Neonof
Mitglied
Hallo,
ich sitze gerade an einer c++ Hausaufgabe und verstehe nicht, weshalb die Erstellung eines Iterators Probleme bereitet.
Header / Klassendefinition
Printfunktion im cpp-File:
Visual Studio markiert mir folgenden Fehler:
Ich weiß, dass konstante Methoden die Membervariablen des Klassenobjektes nicht verändern dürfen, weshalb die Verwendung für Ausgabefunktionen ja auch Sinn macht. Aber hier wird ja auch nur ein temporärer Iterator in der Methode erzeugt. Scheinbar gibt es aber dabei schon das Problem. Nehme ich das const am Ende der Funktionsdeklaration weg, funktioniert es - ist aber natürlich nicht die Aufgabe.
Danke schon einmal für Antworten!
Grüße,
Neonof
ich sitze gerade an einer c++ Hausaufgabe und verstehe nicht, weshalb die Erstellung eines Iterators Probleme bereitet.
Header / Klassendefinition
C++:
#ifndef _WEATHERSTATIONS_
#define _WEATHERSTATIONS_
#include <list>
#include "WeatherStation.h"
class WeatherStations {
public:
// Copy constructor
WeatherStations(WeatherStations const &ws);
// Assignment operator
WeatherStations &operator =(WeatherStations const &ws);
// Inserts by name a new weather station.
// If a weather station already exists, it is replaced.
void Add(WeatherStation const& ws);
// Removes a weather station
bool Remove(WeatherStation const& ws);
// Returns the number of weather stations
size_t GetNrStations() const;
// Prints all weather stations
void PrintAll(std::ostream& out) const;
// Print coldest/warmest weather station
void PrintColdest(std::ostream& out) const;
void PrintWarmest(std::ostream& out) const;
private:
// member variables
size_t maxStations;
size_t contain;
std::list<WeatherStation> stations;
};
#endif
Printfunktion im cpp-File:
C++:
void WeatherStations::PrintAll(std::ostream & out) const
{
for (std::list<WeatherStation>::iterator iter = stations.begin(); iter != stations.end(); iter++)
{
iter->Print(out);
}
}
Visual Studio markiert mir folgenden Fehler:
Ich weiß, dass konstante Methoden die Membervariablen des Klassenobjektes nicht verändern dürfen, weshalb die Verwendung für Ausgabefunktionen ja auch Sinn macht. Aber hier wird ja auch nur ein temporärer Iterator in der Methode erzeugt. Scheinbar gibt es aber dabei schon das Problem. Nehme ich das const am Ende der Funktionsdeklaration weg, funktioniert es - ist aber natürlich nicht die Aufgabe.
Danke schon einmal für Antworten!
Grüße,
Neonof