Błąd kompilacji: "syntax error : identifier '(...)'"
Ostatnio zmodyfikowano 2011-07-28 23:04
diego997 Temat założony przez niniejszego użytkownika |
Błąd kompilacji: "syntax error : identifier '(...)'" » 2011-07-28 21:47:09 No nie rozumie czemu mi błąd wyskakuje wcześniej robiłem tak samo 100 razy i wszystko było dobrze: mam funkcje z klasy Animacje ktora w argumencie ma obiekt klasy Wrog_A void Animacje::Animacje_Anime_A( Wrog_A & Wrog )
A błąd jest następujący: 1>c:\documents and settings\maszyna\moje dokumenty\visual studio 2008\projects\warbladenew\warbladenew\animacje.h(19) : error C2061: syntax error : identifier 'Wrog_A' 1>c:\documents and settings\maszyna\moje dokumenty\visual studio 2008\projects\warbladenew\warbladenew\animacje.h(19) : error C2061: syntax error : identifier 'Wrog_A' 1>Animacje.cpp 1>c:\documents and settings\maszyna\moje dokumenty\visual studio 2008\projects\warbladenew\warbladenew\animacje.h(19) : error C2061: syntax error : identifier 'Wrog_A' 1>c:\documents and settings\maszyna\moje dokumenty\visual studio 2008\projects\warbladenew\warbladenew\animacje.cpp(13) : error C2511: 'void Animacje::Animacje_Anime_A(Wrog_A &)' : overloaded member function not found in 'Animacje' 1> c:\documents and settings\maszyna\moje dokumenty\visual studio 2008\projects\warbladenew\warbladenew\animacje.h(11) : see declaration of 'Animacje'
|
|
Thud |
» 2011-07-28 22:12:52 Pokaż lepiej cały kod sprawiający problem. |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2011-07-28 22:19:21 To wyżej udało mi się zrobić ale pojawił się kolejny problem: Mam taką klasę: class Wrog_A : public Animacje { public: };
1>c:\documents and settings\maszyna\moje dokumenty\visual studio 2008\projects\warbladenew\warbladenew\enemy_a.h(12) : error C2504: 'Animacje' : base class undefined 1>Generating Code... 1>Compiling... 1>main.cpp 1>c:\documents and settings\maszyna\moje dokumenty\visual studio 2008\projects\warbladenew\warbladenew\enemy_a.h(12) : error C2504: 'Animacje' : base class undefined 1>Generating Code... 1>Compiling... 1>Enemy_A.cpp 1>c:\documents and settings\maszyna\moje dokumenty\visual studio 2008\projects\warbladenew\warbladenew\enemy_a.h(12) : error C2504: 'Animacje' : base class undefined
Chyba powinienem gdzieś wstawić plik nagłówkowy tak mi się wydaje ale jak to zrobię to wyskakuje mi poprzedni błąd |
|
kamillo121 |
» 2011-07-28 22:29:00 Jeżeli składniowo jest wszystko poprawnie to może dołączasz kilkukrotnie ten sam nagłówek do innych ? Zastosuj w nagłówku #ifndef ANIMATE_TEST #define ANIMATE_TEST
#endif
No i oczywiście dostarczaj deklarację klasy podstawowej tam gdzie jej używasz. |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2011-07-28 22:34:21 #ifndef ANIMATE_TEST #define ANIMATE_TEST
#endif
To mam w pliku Animacje.h, zrobiłem tak jak kazałeś wszędzie wkleiłem nagłówek ANIMATE_TEST.h ale znowu błąd wyskoczył syntax error :identifier 'Wrog_A' syntax error :identifier 'Wrog_A' 'Animacje' : base class undefined
|
|
kamillo121 |
» 2011-07-28 22:37:41 Pokaż lepiej te pliki po kawałku.
//chyba że masz już gdzieś zdefiniowaną nazwę ANIMATE_TEST no to wtedy tylko zmień to na inną |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2011-07-28 22:43:08 HEADER FILES: #ifndef Animacje_hpp #define Animacje_hpp #include "Enemy_A.h" #include <SFML/Graphics.hpp> #include <iostream> #include <time.h>
using namespace std;
class Animacje { public: void Animacje_Anime_A( Wrog_A & wrog ); };
#endif
#ifndef Enemy_A_hpp #define Enemy_A_hpp #include <SFML/Graphics.hpp> #include <iostream> #include <time.h> #include "Animacje.h" using namespace std;
class Wrog_A : public Animacje { };
#endif
SOURCE FILES: #include "Animacje.h" #include "Enemy_A.h" #include <SFML/Graphics.hpp> #include <iostream> #include <conio.h> #include <time.h>
using namespace std;
void Animacje::Animacje_Anime_A( Wrog_A & wrog ) { }
#include "Enemy_A.h" #include <SFML/Graphics.hpp> #include <iostream> #include <conio.h> #include <time.h>
using namespace std;
|
|
kamillo121 |
» 2011-07-28 22:54:59 Pierwszy sposób: Usuń z nagłówka Animacje.h poniższą dyrektywę: Dodaj przed klasą animacja deklaracje: class Animacja; class Wrog_A;
class Animacja { }
Drugi sposób: Usuń z nagłówka Animacje.h poniższą dyrektywę: Skorzystaj z możliwości jakie daje ci dziedziczenie i w metodzie klasy Animacja zamiast wskaźnika na Wrog_A użyj wskaźnika Animacje, posłuż się metodami wirtualnymi. |
|
« 1 » 2 |