std::list in ner Klasse mit printfunktion aufrufen ...



  • #pragma once
    #include <string>
    using std::string;
    #include <iostream>
    using std::ostream;
    using std::endl;
    using std::cout;
    #include <list>
    #include "Building.h"
    
    class Building;
    class Town
    {
    
    public:
    	std::list<Building*> buildinglist;
    public:
    	Town(const string& townName);
    	Town(const Town& src);//copyconstructor wg kopieren in liste?!
    	virtual ~Town(void);
    	void setTownName();
    	void setTownSize		(int townSize);
    	void setTownMoney		(int townMoney);
    	void setTownResearch	(int townResearch);
    	void setTownLuxuryGoods	(int townLuxury);
    
    	string getTownName()	const;
    	int getTownSize()		const;
    	int getTownMoney()		const;
    	int getTownResearch()	const;
    	int getTownLuxuryGoods()const;
    	void grow();
    	void insertBuilding(Building& b);
    	bool operator<(const Town& value) const;
    	/*bool operator>(const Town& value) const
    	{
    		return value < *this;
    	}*/
    	bool operator==(const Town& value) const;
    	void print()const
    	{
    		std::ostream_iterator<Building*>output(cout, " ");
    		cout<<"Test";
    		std::copy(buildinglist.begin(), buildingslist.end(),output);
    
    	}
    
    private:
    	string makeCompareable(const string& str) const;
    	string name;
    	int size;
    	int money;
    	int research;
    	int luxuryGoods;
    
    };//end Class Town
    inline ostream& operator<<(ostream& out, Town const* d)
    {
    	out<<d->getTownName()<<" ";
    	return out;
    }
    
    inline ostream& operator<<( ostream& out,  Town const &t ) 
    { 
    	out<<std::left<<"Stadt:\t\t"<<t.getTownName()
    		<<" \nhat groesse:\t"<<t.getTownSize()
    		<<" \nbesitzt:\t"<<t.getTownMoney()<<" Euro."
    		<<" \nund hat:\t"<<t.getTownLuxuryGoods()<<" Luxusgueter."
    		<<" \nund Wissen:\t"<<t.getTownResearch()<<" IQ."
    		<<"\n******************************"<<endl;
    		t.print();
    
    	//std::ostream_iterator<Building*>output(cout, " ");
    	//std::copy(buildinglist.begin(), buildingslist.end(),output);
    	return out; 
    }
    

    ich möchte mit der print-funktion den inhalt der buildingliste aufrufen leider meckert der compiler... nur warum buildinglist ist doch public??
    : error C2065: 'buildingslist': nichtdeklarierter Bezeichner
    e:\fbi\weber\pk\loesungen\uk1_2\town.h(44) : error C2228: Links von ".end" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    😕 😕



  • Das ist ein Tippfehler...

    Dein Attribut heisst buildinglist und nicht buildingslist

    Gruß Paddy



  • Paddy82 schrieb:

    Das ist ein Tippfehler...

    Dein Attribut heisst buildinglist und nicht buildingslist

    Gruß Paddy

    ahhhhhh wie bescheuert hehe danke


Anmelden zum Antworten