[GP]Lijstprobleem

Forum van 2de Bachelor Informatica.

Moderator: Praesidium

User avatar
Fristi
WOZ
Posts: 4565

[GP]Lijstprobleem

Post#1 » Sat Nov 22, 2008 4:38 pm

Hallow

Ik zit dus met een probleem met lijsten.

Ik heb een class Perceel

Code: Select all


class Perceel
{
//! Overloaden van de << operator voor gebruik bij Perceel klasse
friend ostream& operator<<( ostream& os, const Perceel& kt );
public:
//! Constructor voor een Perceel
/*!
Beschrijving: <br>
Initialiseert een Perceel met een bepaald adres. Dit adres moet niet noodzakelijk hetzelfde zijn als het factuuradres van een Klant.<br>
Pre: <br>
nadres is een correcte string
*/
Perceel( const string nadres );
//! Default destructor voor Perceel
~Perceel();
bool setAdres( string nAdres );
bool addAansluiting( Aansluiting ansl );
bool verwijderAansluiting();

private:
void printAansluitingen();
//! Adres van het perceel
string fAdres;
lijstaansluitingen aansluitingen;
};
Deze bevat een lijst van aansluitingen:

Code: Select all


class Aansluiting
{
friend ostream& operator<<( ostream& os, const Aansluiting& ans );

public:
Aansluiting();
~Aansluiting();
bool isActief();
void setActief();
void setInActief();
private:
//Aansluiting& operator=( const Aansluiting &andere );
EAN *fEan;
void setEan( EAN &nean );
bool fActief;
// list <Meter> meters
};
ostream& operator<<( ostream& os, const Aansluiting& ans );
Nu het probleem is het volgende:
Ik wil bij het printen van een perceel dat al zen aansluitingen mee afgedrukt worden. Dus bij het overloaden van de "<<" operator bij Perceel doe ik het volgende:

Code: Select all

ostream& Locaties::operator<<( ostream& os, const Perceel& perc )
{
os << perc.fAdres << endl;
for(iter = perc.aansluitingen.begin(); iter != perc.aansluitingen.end(); iter++){
}
return os;
}
om dan men lijst te overlopen en telkens het element in kwestie af te drukken maar heir gaat het dus mis.

krijg volgende error:

Code: Select all


locaties.cpp: In function ‘std::ostream& Locaties::operator<<(std::ostream&, const Locaties::Perceel&)’:
locaties.cpp:25: error: no match for ‘operator=’ in ‘Locaties::iter = perc->Locaties::Perceel::aansluitingen.std::list<_Tp, _Alloc>::begin [with _Tp = Aansluitingen::Aansluiting, _Alloc = std::allocator<Aansluitingen::Aansluiting>]()’
/usr/include/c++/4.2/bits/stl_list.h:113: note: candidates are: std::_List_iterator<Aansluitingen::Aansluiting>& std::_List_iterator<Aansluitingen::Aansluiting>::operator=(const std::_List_iterator<Aansluitingen::Aansluiting>&)
het gaat em om volgende regel:

Code: Select all


for(iter = perc.aansluitingen.begin(); iter != perc.aansluitingen.end(); iter++)
Em geeft dus een fout op het toekennen van dien iterator, maar kweeni juist wa er mis is -.-"
Fristi Ad Infinitum

WINAK WOZ 2013 - ...
WINAK Magister Fristi 2012-2013
WINAK Feest 2011-2012
WINAK Schachtentemmer 2010-2011
WINAK Scriptor 2008-2009 | 2009-2010

User avatar
Fristi
WOZ
Posts: 4565

Post#2 » Sat Nov 22, 2008 5:35 pm

In orde thanks to pieter

moest const_iterator ipv iterator zijn :x
Fristi Ad Infinitum

WINAK WOZ 2013 - ...
WINAK Magister Fristi 2012-2013
WINAK Feest 2011-2012
WINAK Schachtentemmer 2010-2011
WINAK Scriptor 2008-2009 | 2009-2010

Pieter Belmans
Posts: 593
Contact:

Post#3 » Sat Nov 22, 2008 5:53 pm

En dat zonder te zien wat het type van iter is. Volgende keer volledig zijn ;).

Return to “2de Bachelor”

Who is online

Users browsing this forum: No registered users and 47 guests