Niezdefiniowane(?) klasy

0

Witam. Podczas kompilacji programu mam masę problemów, właściwie nie wiedząc z czym. Staram się właśnie wprowadzić nową klasę, z której dziedziczyłyby klasy CSnake, CCheese, CMouse Oto moje pliki .h:
wprowadzana klasa CGameOBject:

// Class automatically generated by Dev-C++ New Class wizard
#pragma once

#ifndef CGAMEOBJECT_H
#define CGAMEOBJECT_H

#include "CGameObject.h"
/*
 * basic game object class, further objects will inherit from this one 
 */
class CGame;
class CGameObject
{
public:

	// class constructor
	CGameObject();
	// class destructor
	virtual ~CGameObject();
/*
	virtual void Move()= 0;
	virtual void CheckForCollision()= 0;
	virtual void AfterMove()= 0;*/
private:
	CGame * game;

};

#endif // CGAMEOBJECT_H

i klasy dziedziczące:
CSnake.h

#pragma once
#include "definitions.h"
#include "ccheese.h"
#include "cpoint.h"
#include "cbendpoint.h"
#include "cgameobject.h"

#ifndef SNAKE_DATA_H
#define SNAKE_DATA_H


#include "graphics.h"
#include <deque>

class CSnake: public CGameObject
{ //tutaj dlugio kod, mylse, ze jest nieistotny wiec wycinam};
#endif // SNAKE_DATA_H

podobnie wqyglądają CMouse.h i CCheese.h
Mam też klasę CGame , plik .h:

// Class automatically generated by Dev-C++ New Class wizard
#pragma once
#include "graphics.h"
#include <iostream>
#include <vector>
#include <ctime>
#include "snake_data.h"
#include "mouse.h"
#include "ccheese.h"
#include "definitions.h"
#include "cpoint.h"
#include "cgameobject.h"


#ifndef CGAME_H
#define CGAME_H


            class  Snake; // one snake 
            class Cheese; //and one cheese for the mouse
            class Mouse;  //one mouse
/*
 * Class that will deal with all the 'gaming' stuff
 */
class CGameObject;
class CGame
{
	public:
		// class constructor
		CGame();
		// class destructor
		~CGame();
		int randomvalue(int starting, int ending);
		void GamePhysics();
		void Play();
		void InitScreen();
		
	private:
            CSnake  Snake; // one snake 
            CCheese Cheese; //and one cheese for the mouse
            CMouse Mouse;  //one mouse
            CGameObject * objects[3];
};

#endif // CGAME_H

W wyniku klompilacji otrzymuję mase błędów mówiących mi o tym, że klasy dziedziczące z CGameObject nie sa zdefiniowane(ja tak to przynajmniej rozumiem):

1>------ Rebuild All started: Project: bgi, Configuration: Debug Win32 ------
1>Deleting intermediate and output files for project 'bgi', configuration 'Debug|Win32'
1>Compiling...
1>snake_data.cpp
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\mouse.h(18) : error C2504: 'CSnake' : base class undefined
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\mouse.h(42) : error C2061: syntax error : identifier 'CCheese'
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(39) : error C2146: syntax error : missing ';' before identifier 'Snake'
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(39) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(39) : error C2208: 'Snake' : no members defined using this type
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(40) : error C2146: syntax error : missing ';' before identifier 'Cheese'
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(40) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(40) : error C2208: 'Cheese' : no members defined using this type
1>mouse.cpp
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(39) : error C2146: syntax error : missing ';' before identifier 'Snake'
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(39) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(39) : error C2208: 'Snake' : no members defined using this type
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(40) : error C2146: syntax error : missing ';' before identifier 'Cheese'
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(40) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(40) : error C2208: 'Cheese' : no members defined using this type
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(41) : error C2146: syntax error : missing ';' before identifier 'Mouse'
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(41) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(41) : error C2208: 'Mouse' : no members defined using this type
1>.\mouse.cpp(124) : warning C4018: '<' : signed/unsigned mismatch
1>main.cpp
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\mouse.h(18) : error C2504: 'CSnake' : base class undefined
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\mouse.h(42) : error C2061: syntax error : identifier 'CCheese'
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(39) : error C2146: syntax error : missing ';' before identifier 'Snake'
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(39) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(39) : error C2208: 'Snake' : no members defined using this type
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(40) : error C2146: syntax error : missing ';' before identifier 'Cheese'
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(40) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(40) : error C2208: 'Cheese' : no members defined using this type
1>cpoint.cpp
1>cgameobject.cpp
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\ccheese.h(16) : error C2504: 'CGameObject' : base class undefined
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\snake_data.h(43) : error C2504: 'CGameObject' : base class undefined
1>cgame.cpp
1>.\cgame.cpp(39) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        E:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : see declaration of 'sprintf'
1>.\cgame.cpp(25) : warning C4101: 'i' : unreferenced local variable
1>.\cgame.cpp(55) : error C2228: left of '.size' must have class/struct/union
1>        type is 'CGameObject *[3]'
1>ccheese.cpp
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\snake_data.h(43) : error C2504: 'CGameObject' : base class undefined
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\snake_data.h(75) : error C2061: syntax error : identifier 'CCheese'
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\mouse.h(42) : error C2061: syntax error : identifier 'CCheese'
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(40) : error C2146: syntax error : missing ';' before identifier 'Cheese'
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(40) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\makro\cp\snake cv++\snake na vc++ -wersja robocza\CGame.h(40) : error C2208: 'Cheese' : no members defined using this type
1>cbendpoint.cpp
1>Generating Code...
1>Build log was saved at "file://c:\makro\cp\snake cv++\snake na VC++ -wersja robocza\Debug\BuildLog.htm"
1>bgi - 34 error(s), 3 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

Proszę, pomóżcie. Błędy dotyczą momentów, kiedy klasy dziedziczą od CGameObject - czyli potrzebna jest pełna definicja klasy(jak mniemam), ale takze uzywania wskaźników do obiektów klasy(a tutaj potrzeba tylko deklaracji). Kilka dni już szukam przyczyny, powstawiałem do plików po dwa strazniki nagłówków, w nagłówkach używam tylko wskaźników do klas, a i tak ciągle to samo...

0
#include "CGameObject.h"
class CGameObject {}

Plik z definicją klasy CGameObject includuje plik "CGameObject.h" ? Chyba ta klasa powinna się tam znajdować?

0

Nie wiem, jak to tam trafiło.... Bądź co bądź - w swiom kodzie tego nie mam, a błędy dalej wyskakują

0

Pomogło :-) Dzieki

1 użytkowników online, w tym zalogowanych: 0, gości: 1