#Include Problem

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Beliaz
Beiträge: 5
Registriert: 04.11.2010, 18:41
Echter Name: Florian Tischler
Wohnort: AUT/Tirol/Vomp

#Include Problem

Beitrag von Beliaz »

Hi

Ich poste erstmal den Code:

Code: Alles auswählen

#pragma once

#include<allegro.h>
#include<winalleg.h>
#include<iostream>
#include<list>

#include"Framework.h"
#include"CPlayer.h"

using namespace std;

class CGame  : public TSingleton<CGame>
{
              private:
		list<CPlayer> m_PlayerList;
		list<CPlayer>::iterator m_It;

	public:	

		BITMAP* m_pBackground;
		BITMAP* m_pCollisionMap;
		BITMAP* m_pPlayerSprite;
		float m_fGravity;

		CGame();

		void SetBackground(char filename[256]);
		void SetCollisionMap(char filename[256]);
		void CreateWorld(char background[256], char collisionMap[256], float gravity);

		CPlayer& AddPlayer(string name, int x, int y, int health);
		//void RemovePlayer(CPlayer name);

		void Render();
		void Move();
		void CheckCollision();

		~CGame(void);
};
Das Problem betrifft die zwei Variablen m_PlayerList und m_It und zwar bekomme ich diese Fehler:

1>c:\users\flo\documents\visual studio 2010\projects\wurms\wurms\cgame.h(19): error C2065: 'CPlayer' : undeclared identifier
1>c:\users\flo\documents\visual studio 2010\projects\wurms\wurms\cgame.h(20): error C2065: 'CPlayer' : undeclared identifier
1>c:\users\flo\documents\visual studio 2010\projects\wurms\wurms\cgame.h(20): error C2955: 'std::list' : use of class template requires template argument list
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\list(579) : see declaration of 'std::list'

Der dritte Punkt ist mir klar aber warum erhalte ich für CPlayer diesen Fehler? Header ist included und falsch geschrieben habe ich den Klassennamen auch nicht.

Könnt ihr mir da bitte helfen bin ratlos

Danke im voraus

mfg
Beliaz
Alexander Kornrumpf
Moderator
Beiträge: 2157
Registriert: 25.02.2009, 13:37

Re: #Include Problem

Beitrag von Alexander Kornrumpf »

Vielleicht wäre es sinnvoll auch CPlayer.h zu posten.
Beliaz
Beiträge: 5
Registriert: 04.11.2010, 18:41
Echter Name: Florian Tischler
Wohnort: AUT/Tirol/Vomp

Re: #Include Problem

Beitrag von Beliaz »

sry :)

Code: Alles auswählen

#pragma once

#include<allegro.h>
#include<winalleg.h>
#include<iostream>

#include"Framework.h"
#include"CGame.h"

using namespace std;

class CPlayer
{

	private:
		float m_fX;
		float m_fY;
		int m_HP;	
			
		float m_fVx;
		float m_fVy;
		string m_sName;

	public:
		bool m_bJump;	
		int m_Dir;

		CPlayer(string name, int x, int y, int health) { m_sName = name, m_fX = x, m_fY = y, m_HP = health, m_Dir = 0, m_bJump = true, m_fVx = 0, m_fVy = 0;};

		void UpdateHP(int dHP) {m_HP += dHP;};

		void SetVelocityX(int vx) {m_fVx = vx;};
		void SetVelocityY(int vy) {m_fVy = vy;};
		void UpdateVelocityX(int dvx) {m_fVx += dvx;};
		void UpdateVelocityY(int dvy) {m_fVy += dvy;};

		void SetPositionX(int x) {m_fX = x;};
		void SetPositionY(int y) {m_fY = y;};
		void UpdatePositionX(int dx) {m_fX += dx;};
		void UpdatePositionY(int dy) {m_fY += dy;};

		void Render();
		void Move();
		void CheckCollision();

		~CPlayer(void);

};
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: #Include Problem

Beitrag von Aramis »

Deine beiden Dateien inkludieren sich gegenseitig. Du brauchst CGame.h in der CPlayer.h doch gar nicht.
Beliaz
Beiträge: 5
Registriert: 04.11.2010, 18:41
Echter Name: Florian Tischler
Wohnort: AUT/Tirol/Vomp

Re: #Include Problem

Beitrag von Beliaz »

aahh.... ich brauche die "CGame.h" schon aber nur in der .cpp Datei....habs jetzt einfach bei "CPlayer.h" rausgenommen und in der .cpp Datei inkludiert....jetzt gehts!

Danke für die schnelle Hilfe :)
Benutzeravatar
Biolunar
Establishment
Beiträge: 154
Registriert: 27.06.2005, 17:42
Alter Benutzername: dLoB

Re: #Include Problem

Beitrag von Biolunar »

Und wichtig: Verwende kein "using namespace" in Headerdateien!
Antworten