Gegenseitiges #include zweier Klassen

XoR_1337

Mitglied
Guten Abend zusammen :).

Ich versuche schon seit Längerem ein bestimmtes Problem zu behenben, welches wie folgt aussieht:

Ich Habe eine Klasse A und eine Klasse B. In A Habe ich eine Instanz der Klasse B, weshalb ich in A #include "B.hpp" benötige. In Klasse B habe ich jedoch auch eine Instanz der Klasse A, wodurch ich dort #include "A.hpp" benötige.

Habe dank Google einige Treffer zu diesem Thema gefunden, sowie auch diesen: http://www.easy-coding.de/problem-mit-klassen-die-sich-gegenseitig-benutzen-t2383.html
doch leider funktioniert es selbst nach dieser Anleitung bei mir irgentwie nicht.

Klasse A stellt bei mir die Klasse "Listen.hpp" dar. Klasse B hingegen "Turm.hpp".

Hier noch die Klassen und Fehlermeldung des Compilers zum besseren Verständnis:
(Denkt euch nichts wegen den Namen, sollte ein schrittweises Herantasten an ein kleines Towerdefense werden :D)


Listen.hpp:
Code:
#ifndef LISTEN_HPP
#define LISTEN_HPP

#include "Turm.hpp"
#include <list>
#include "Monster.hpp"
#include "Shot.hpp"


class CList
{
	
	CTurm turm;

	public:

		list<CTurm*> *GetTowerList () { return (&m_TowerList); }
		list<CMonster*> *GetMonsterList () { return (&m_MonsterList); }

		void AddTower(CTurm *Turm);
		void AddMonster(CMonster *Monster);
		~CList();
		void Update();




	private:

		list<CTurm*> m_TowerList;
		list<CMonster*> m_MonsterList;

		list<CTurm*>::iterator It_Tower;
		list<CMonster*>::iterator It_Monster;
};
#endif

Listen.cpp:

Code:
#include "Listen.hpp"

CList::~CList()
{
	It_Tower = m_TowerList.begin();
	It_Monster = m_MonsterList.begin();

	while(It_Monster != m_MonsterList.end())
	{
		delete(*It_Monster);
		(*It_Monster) = NULL;
		It_Monster = m_MonsterList.erase(It_Monster);
	}


	while(It_Tower != m_TowerList.end())
	{
		delete(*It_Tower);
		(*It_Tower) = NULL;
		It_Tower = m_TowerList.erase(It_Tower);
	}
}


void CList::AddTower(CTurm *Turm)
{
	m_TowerList.push_back(Turm);
}



void CList::AddMonster(CMonster *Monster)
{
	m_MonsterList.push_back(Monster);
}



void CList::Update()
{
	It_Tower = m_TowerList.begin();
	It_Monster = m_MonsterList.begin();

	while(It_Monster != m_MonsterList.end())
	{
		if((*It_Monster)->m_IsAlive)
		{
			(*It_Monster)->Update();
			It_Monster++;
		}
		else
		{
			delete(*It_Monster);
			(*It_Monster) = NULL;
			It_Monster = m_MonsterList.erase(It_Monster);
		}
	}


	while(It_Tower != m_TowerList.end())
	{
		if((*It_Tower)->IsAlive())
		{
			(*It_Tower)->Update();
			It_Tower++;
		}
		else
		{
			delete(*It_Tower);
			(*It_Tower) = NULL;
			It_Tower = m_TowerList.erase(It_Tower);
		}
	}
}


Turm.hpp:
Code:
#ifndef TURM_HPP
#define TURM_HPP

#include <list>
#include "Sprite.hpp"
#include "Listen.hpp"

class Liste;

class CTurm
{
	CList* list;

	public:

		CTurm(float xPos, float yPos, CList *Liste);
		~CTurm();
		void Update();
		void Shot();
		void CheckCollision();
		bool IsAlive() { return(m_IsAlive); }

		int m_health;


	private:

		CSprite m_pSpriteTurm;
		CList *m_pListe;
		
		bool m_IsAlive;

		list<CShot*> m_ShotList;
		list<CShot*>::iterator It_Shot;

		list<CMonster*> *m_pMonsterList;
		list<CMonster*>::iterator It_Monster;

		float m_xPos;
		float m_yPos;
};
#endif


Turm.cpp:
Code:
#include "Turm.hpp"
#include "Listen.hpp"

//------------------------------ CTurm()
//
CTurm::CTurm(float xPos, float yPos, CList *Liste)
{
	bla = new CList;

	m_pSpriteTurm.Load("Tower.bmp");
	m_pSpriteTurm.Render(xPos, yPos);

	m_IsAlive = true;

	m_health = 100;

	m_pListe = Liste;

	m_xPos = xPos;
	m_yPos = yPos;
}



//------------------------------ ~CTurm()
//
CTurm::~CTurm()
{
	It_Shot = m_ShotList.begin();

	while(It_Shot != m_ShotList.end())
	{
		delete(*It_Shot);
		(*It_Shot) = NULL;

		It_Shot = m_ShotList.erase(It_Shot);
	}
}



//------------------------------ Update()
//
void CTurm::Update()
{
	m_pSpriteTurm.Render(m_xPos, m_yPos);

	CheckCollision();

	It_Shot = m_ShotList.begin();

	while(It_Shot != m_ShotList.end())
	{
		if((*It_Shot)->IsAlive())
		{
			(*It_Shot)->Update();
			It_Shot++;
		}
		else
		{
			delete(*It_Shot);
			(*It_Shot) = NULL;
			It_Shot = m_ShotList.erase(It_Shot);
		}
	}
}


//------------------------------ Shot()
//
void CTurm::Shot()
{
	CShot *Schuss = new CShot(m_xPos, m_yPos);
	m_ShotList.push_back(Schuss);
}


//------------------------------ CheckCollision()
//
void CTurm::CheckCollision()
{
	SDL_Rect RectShot;
	SDL_Rect RectMonster;

	m_pMonsterList = m_pListe->GetMonsterList();

	It_Monster = m_pMonsterList.begin();
	It_Shot = m_ShotList.begin();

	while(It_Monster != m_pMonsterList.end())
	{
		RectMonster = (*It_Monster)->GetRect();

		while(It_Shot != m_ShotList.end())
		{
			RectShot = (*It_Shot)->GetRect();

			if(RectMonster.x + RectMonster.w < RectShot.x &&
				RectMonster.y <= RectShot.y &&
				RectMonster.y + RextMonster.h >= RectShot.y)
			{
				(*It_Shot)->m_IsAlive = false;
				(*It_Monster)->m_IsAlive = false;
			}
		}
	}
}



Compilermeldung:
Code:
1>------ Erstellen gestartet: Projekt: TDprob, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>main.cpp
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(13) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'turm'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(13) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(13) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(17) : error C2065: 'CTurm': nichtdeklarierter Bezeichner
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(17) : error C2059: Syntaxfehler: '>'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(17) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(18) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(30) : error C2065: 'CTurm': nichtdeklarierter Bezeichner
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(30) : error C2059: Syntaxfehler: '>'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(33) : error C2065: 'CTurm': nichtdeklarierter Bezeichner
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(33) : error C2059: Syntaxfehler: '>'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(35) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(11) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(16) : error C2146: Syntaxfehler: Fehlendes ',' vor Bezeichner 'Liste'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(16) : error C2065: 'Liste': nichtdeklarierter Bezeichner
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(16) : error C2143: Syntaxfehler: Es fehlt ',' vor ')'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(21) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(41) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\main.cpp(14) : error C2146: Syntaxfehler: Fehlendes ',' vor Bezeichner 'argv'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\main.cpp(14) : error C2065: 'argv': nichtdeklarierter Bezeichner
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\main.cpp(14) : error C2059: Syntaxfehler: ']'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\main.cpp(15) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\main.cpp(21) : error C2143: Syntaxfehler: Es fehlt ',' vor ')'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\main.cpp(31) : error C2065: 'pListe': nichtdeklarierter Bezeichner
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\main.cpp(31) : error C2143: Syntaxfehler: Es fehlt ',' vor ')'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\main.cpp(46) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\main.cpp(55) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\main.cpp(58) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\main.cpp(60) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\main.cpp(73) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\main.cpp(78) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\main.cpp(81) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\main.cpp(82) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\main.cpp(82) : fatal error C1004: Unerwartetes Dateiende gefunden.
1>Turm.cpp
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\sprite.hpp(37) : error C2065: 'g_pFramework': nichtdeklarierter Bezeichner
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\sprite.hpp(37) : error C2227: Links von "->GetScreen" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.
1>        Typ ist ''unknown-type''
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(13) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'turm'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(13) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(13) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(17) : error C2065: 'CTurm': nichtdeklarierter Bezeichner
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(17) : error C2059: Syntaxfehler: '>'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(17) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(18) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(30) : error C2065: 'CTurm': nichtdeklarierter Bezeichner
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(30) : error C2059: Syntaxfehler: '>'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(33) : error C2065: 'CTurm': nichtdeklarierter Bezeichner
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(33) : error C2059: Syntaxfehler: '>'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\listen.hpp(35) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(11) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(16) : error C2146: Syntaxfehler: Fehlendes ',' vor Bezeichner 'Liste'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(16) : error C2065: 'Liste': nichtdeklarierter Bezeichner
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(16) : error C2143: Syntaxfehler: Es fehlt ',' vor ')'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(21) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(41) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.cpp(7) : error C2653: 'CTurm': Keine Klasse oder Namespace
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.cpp(7) : error C2146: Syntaxfehler: Fehlendes ',' vor Bezeichner 'Liste'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.cpp(7) : error C2065: 'Liste': nichtdeklarierter Bezeichner
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.cpp(7) : error C2143: Syntaxfehler: Es fehlt ',' vor ')'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.cpp(8) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.cpp(12) : error C2065: 'yPos': nichtdeklarierter Bezeichner
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.cpp(22) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.cpp(28) : error C2653: 'CTurm': Keine Klasse oder Namespace
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.cpp(28) : fatal error C1903: Weiterverarbeitung nach vorherigem Fehler nicht möglich; Kompilierung wird abgebrochen.
1>Listen.cpp
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\sprite.hpp(37) : error C2065: 'g_pFramework': nichtdeklarierter Bezeichner
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\sprite.hpp(37) : error C2227: Links von "->GetScreen" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.
1>        Typ ist ''unknown-type''
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(12) : error C2143: Syntaxfehler: Es fehlt ';' vor '*'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(12) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(12) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(16) : error C2061: Syntaxfehler: Bezeichner 'CList'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(29) : error C2143: Syntaxfehler: Es fehlt ';' vor '*'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(29) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(29) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(34) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(34) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(34) : error C2039: 'iterator': Ist kein Element von '`global namespace''
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(34) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(37) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(37) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(37) : error C2039: 'iterator': Ist kein Element von '`global namespace''
1>XXXXXXXX\documents\visual studio 2008\projects\bla\TDprob\turm.hpp(37) : error C2238: Unerwartete(s) Token vor ';'
1>Code wird generiert...
1>Das Buildprotokoll wurde unter "file://XXXXXXXX\Documents\Visual Studio 2008\Projects\bla\TDprob\Debug\BuildLog.htm" gespeichert.
1>TDprob - 86 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

Hoffe ihr könnt mir bei der Lösung von gegenseitigem Includen helfen.
Danke schon mal im Vorraus! :)


MFG XoR_1337



PS.: Seit nachsichtig bei der Erklärung, schreibe noch nicht so lang in C++ ;)
 
Danke schon mal für deine flotte Antwort, dennoch gibt der Compiler weiter fehler aus :(

Turm.hpp:
Code:
#ifndef TURM_HPP
#define TURM_HPP
 
#include <list>
#include "Sprite.hpp"
 
class CList;
 
class CTurm
{
    CList* list;
 
    public:
 
        CTurm(float xPos, float yPos, CList *Liste);
        ~CTurm();
        void Update();
        void Shot();
        void CheckCollision();
        bool IsAlive() { return(m_IsAlive); }
 
        int m_health;
 
 
    private:
 
        CSprite m_pSpriteTurm;
        CList *m_pListe;
        
        bool m_IsAlive;
 
        list<CShot*> m_ShotList;
        list<CShot*>::iterator It_Shot;
 
        list<CMonster*> *m_pMonsterList;
        list<CMonster*>::iterator It_Monster;
 
        float m_xPos;
        float m_yPos;
};
#endif


Code:
1>------ Erstellen gestartet: Projekt: TDprob, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>main.cpp
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2065: 'CShot': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2059: Syntaxfehler: '>'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2065: 'CShot': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2059: Syntaxfehler: '>'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(40) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\shot.hpp(11) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\shot.hpp(17) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\shot.hpp(18) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\shot.hpp(28) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\listen.hpp(11) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\listen.hpp(17) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\listen.hpp(17) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\listen.hpp(18) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\listen.hpp(18) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\listen.hpp(30) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\listen.hpp(31) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\listen.hpp(33) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\listen.hpp(34) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\listen.hpp(35) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(14) : error C2146: Syntaxfehler: Fehlendes ',' vor Bezeichner 'argv'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(14) : error C2065: 'argv': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(14) : error C2059: Syntaxfehler: ']'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(15) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(21) : error C2143: Syntaxfehler: Es fehlt ',' vor ')'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(31) : error C2065: 'pListe': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(31) : error C2143: Syntaxfehler: Es fehlt ',' vor ')'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(46) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(55) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(58) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(60) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(73) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(78) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(81) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(82) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(82) : fatal error C1004: Unerwartetes Dateiende gefunden.
1>Turm.cpp
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2039: 'iterator': Ist kein Element von '`global namespace''
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2039: 'iterator': Ist kein Element von '`global namespace''
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(8) : error C2065: 'bla': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(8) : error C2512: 'CList': Kein geeigneter Standardkonstruktor verfügbar
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(29) : error C2065: 'It_Shot': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(29) : error C2065: 'm_ShotList': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(29) : error C2228: Links von ".begin" muss sich eine Klasse/Struktur/Union befinden.
1>        Typ ist ''unknown-type''
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(31) : error C2065: 'It_Shot': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(31) : error C2065: 'm_ShotList': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(31) : error C2228: Links von ".end" muss sich eine Klasse/Struktur/Union befinden.
1>        Typ ist ''unknown-type''
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(31) : fatal error C1903: Weiterverarbeitung nach vorherigem Fehler nicht möglich; Kompilierung wird abgebrochen.
1>Listen.cpp
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2039: 'iterator': Ist kein Element von '`global namespace''
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2327: 'CTurm::list': Ist kein Typname, nicht statisch und kein Enumerator
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2039: 'iterator': Ist kein Element von '`global namespace''
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2238: Unerwartete(s) Token vor ';'
1>Sprite.cpp
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\sprite.cpp(9) : error C2065: 'g_pFramework': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\sprite.cpp(9) : error C2227: Links von "->GetScreen" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.
1>        Typ ist ''unknown-type''
1>Code wird generiert...
1>Das Buildprotokoll wurde unter "file://XXXXXXXX\Visual Studio 2008\Projects\bla\TDprob\Debug\BuildLog.htm" gespeichert.
1>TDprob - 94 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Dachte mir, dass in Turm.hpp die zeile 11 ebenfalls ein Problem geben könnte, da ich die CList-Variable "list" genannt habe, deshalb hab ich diese mal eigenständig umbenannt, dennnoch leider massig Fehler vorhanden :(

---------- Nach dem Umbenennen: ----------

Turm.hpp
Code:
#ifndef TURM_HPP
#define TURM_HPP
 
#include <list>
#include "Sprite.hpp"
 
class CList;
 
class CTurm
{
    CList* listbla;
 
    public:
 
        CTurm(float xPos, float yPos, CList *Liste);
        ~CTurm();
        void Update();
        void Shot();
        void CheckCollision();
        bool IsAlive() { return(m_IsAlive); }
 
        int m_health;
 
 
    private:
 
        CSprite m_pSpriteTurm;
        CList *m_pListe;
        
        bool m_IsAlive;
 
        list<CShot*> m_ShotList;
        list<CShot*>::iterator It_Shot;
 
        list<CMonster*> *m_pMonsterList;
        list<CMonster*>::iterator It_Monster;
 
        float m_xPos;
        float m_yPos;
};
#endif



Immerhin etwas weniger Fehler :D
Code:
1>------ Erstellen gestartet: Projekt: TDprob, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>main.cpp
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2065: 'CShot': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2059: Syntaxfehler: '>'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2065: 'CShot': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2059: Syntaxfehler: '>'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(40) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\shot.hpp(11) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\shot.hpp(17) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\shot.hpp(18) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\shot.hpp(28) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\listen.hpp(11) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\listen.hpp(17) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\listen.hpp(18) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\listen.hpp(35) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(14) : error C2146: Syntaxfehler: Fehlendes ',' vor Bezeichner 'argv'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(14) : error C2065: 'argv': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(14) : error C2059: Syntaxfehler: ']'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(15) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(21) : error C2143: Syntaxfehler: Es fehlt ',' vor ')'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(31) : error C2065: 'pListe': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(31) : error C2143: Syntaxfehler: Es fehlt ',' vor ')'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(46) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(55) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(58) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(60) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(73) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(78) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(81) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(82) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\main.cpp(82) : fatal error C1004: Unerwartetes Dateiende gefunden.
1>Turm.cpp
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2039: 'iterator': Ist kein Element von '`global namespace''
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2039: 'iterator': Ist kein Element von '`global namespace''
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(8) : error C2065: 'bla': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(8) : error C2512: 'CList': Kein geeigneter Standardkonstruktor verfügbar
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(29) : error C2065: 'It_Shot': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(29) : error C2065: 'm_ShotList': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(29) : error C2228: Links von ".begin" muss sich eine Klasse/Struktur/Union befinden.
1>        Typ ist ''unknown-type''
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(31) : error C2065: 'It_Shot': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(31) : error C2065: 'm_ShotList': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(31) : error C2228: Links von ".end" muss sich eine Klasse/Struktur/Union befinden.
1>        Typ ist ''unknown-type''
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.cpp(31) : fatal error C1903: Weiterverarbeitung nach vorherigem Fehler nicht möglich; Kompilierung wird abgebrochen.
1>Listen.cpp
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(32) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2039: 'iterator': Ist kein Element von '`global namespace''
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(33) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(35) : error C2238: Unerwartete(s) Token vor ';'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2039: 'iterator': Ist kein Element von '`global namespace''
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\turm.hpp(36) : error C2238: Unerwartete(s) Token vor ';'
1>Sprite.cpp
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\sprite.cpp(9) : error C2065: 'g_pFramework': nichtdeklarierter Bezeichner
1>XXXXXXXX\visual studio 2008\projects\bla\TDprob\sprite.cpp(9) : error C2227: Links von "->GetScreen" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.
1>        Typ ist ''unknown-type''
1>Code wird generiert...
1>Das Buildprotokoll wurde unter "file://XXXXXXXX\Visual Studio 2008\Projects\bla\TDprob\Debug\BuildLog.htm" gespeichert.
1>TDprob - 68 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
 
So, hab mich nochmal intensiv mit den Compilerfehlern auseinander gesetzt, und sieht soweit richtig gut aus. Doch ein kleiner Fehler bleibt weiterhin bestehen und ich weiß leider nicht wiso:

Fehlermeldung:
Code:
1>------ Erstellen gestartet: Projekt: simple_tower, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>Sprite.cpp
1>XXXXXXXXX\visual studio 2008\projects\bla\TDprob\sprite.cpp(9) : error C2065: 'g_pFramework': nichtdeklarierter Bezeichner
1>XXXXXXXXX\visual studio 2008\projects\bla\TDprob\sprite.cpp(9) : error C2227: Links von "->GetScreen" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.
1>        Typ ist ''unknown-type''
1>Code wird generiert...
1>Kompilieren...
1>Framework.cpp
1>Code wird generiert...
1>Kompilieren...
1>main.cpp
1>Code wird generiert...
1>Das Buildprotokoll wurde unter "file://XXXXXXXX\Visual Studio 2008\Projects\bla\TDprob\Debug\BuildLog.htm" gespeichert.
1>simple_tower - 2 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Aber es sollte doch eigentlich g_pFramework finden, da es per #define global ist, oder habe ich da was falsch verstanden?

Hier noch die zwei Klassen:

Framework.hpp:
Code:
#ifndef FRAMEWORK_HPP
#define FRAMEWORK_HPP

#include <sdl.h>
#include <iostream>
#include "Singleton.hpp"

using namespace std;

#define g_pFramework CFramework::Get()


class CFramework : public TSingleton<CFramework>
{
	public:

		CFramework();
		~CFramework();
		void Init(int Width, int Height, int ColorDepth, bool Fullscreen, const char *WindowName);
		void SetBackground(const char *Background);
		void Update();
		void Flip();
		void Quit();
		SDL_Surface* GetScreen() { return(m_pScreen); }

	private:

		SDL_Surface *m_pScreen;
		SDL_Surface *m_pBackground;
		SDL_Rect m_RectBackground;
};
#endif

Sprite.cpp:
Code:
#include "Sprite.hpp"

//------------------------------ CSprite()
//
CSprite::CSprite()
{
	m_pSprite = NULL;
	m_pScreen = g_pFramework->GetScreen();
}



//------------------------------ ~CSprite()
//
CSprite::~CSprite()
{
	m_pSprite = NULL;
}




//------------------------------ Load()
//
void CSprite::Load(const char *FileName)
{
	m_pSprite = SDL_LoadBMP(FileName);
}



//------------------------------
//
void CSprite::SetColorKey(int R, int G, int B)
{
	SDL_SetColorKey(m_pSprite, SDL_SRCCOLORKEY, SDL_MapRGB(m_pSprite->format, R, G, B));
}



//------------------------------ Render()
//
void CSprite::Render(float xPos, float yPos)
{
	m_RectSprite.x = static_cast<int>(xPos);
	m_RectSprite.y = static_cast<int>(yPos);
	m_RectSprite.w = m_pSprite->w;
	m_RectSprite.h = m_pSprite->h;

	SDL_BlitSurface(m_pSprite, NULL, m_pScreen, &m_RectSprite);
}



//------------------------------ SetPos()
//
void CSprite::SetPos(float xPos, float yPos)
{
	m_RectSprite.x = static_cast<int>(xPos);
	m_RectSprite.y = static_cast<int>(yPos);

	SDL_BlitSurface(m_pSprite, NULL, m_pScreen, &m_RectSprite);
}
 
Hallo XoR_1337,

sehr schön, dass du die meisten Fehler selber ausräumen konntest. Der übrig gebliebene wird wohl dadurch entstehen, dass du Framework.hpp nicht in Sprite.cpp eingebunden hast.

Abgesehen davon: Konstruktor und Destruktor einer Singleton-Klasse sollten nicht public sein. Denn sonst könnte jeder eine neue Instanz erstellen oder — noch schlimmer — die „echte“ Singleton-Instanz zerstören. Wobei sich sowieso die Frage stellt, ob ein Singleton hier nötig ist.

Außerdem haben globale using-Direktiven in Header-Dateien nichts zu suchen. Stichwort Namespace Pollution.

Grüße,
Matthias
 

Neue Beiträge

Zurück