Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Program nie widzi klasy w innym pliku

Ostatnio zmodyfikowano 2015-03-04 01:05
Autor Wiadomość
drudl
Temat założony przez niniejszego użytkownika
Program nie widzi klasy w innym pliku
» 2015-03-02 23:04:31
Witam! Problem pojawia się w pliku:
C/C++
#ifndef WYBIORCZA_LISTA_OBIEKTOW_H
#define WYBIORCZA_LISTA_OBIEKTOW_H
#include "map.h"

class wybiorcza_lista_obiektow
{
    int nr_obiektu;
protected:
    int * wsk_na_liste;
    int dlugosc_listy;
    bool czy_stworzono_liste;
public:
    virtual void zapisywanie_listy( const mapa & );
    void idz_na_poczatek_listy() { nr_obiektu = 0; };
    int operator ++( int = 0 )
    {
        ++nr_obiektu;
        return wsk_na_liste[ nr_obiektu - 1 ];
    }
    wybiorcza_lista_obiektow();
    ~wybiorcza_lista_obiektow();
   
};
class wybiorcza_lista_obiektow_prawo
    : public wybiorcza_lista_obiektow
{
public:
    void zapisywanie_listy( const mapa & );
};
#endif
To jest kod z loga:
-------------- Build: Release in gra_kucyki (compiler: GNU GCC Compiler)---------------

mingw32-g++.exe -Wall -O2 -ID:\Programowanie\Allegro\gra_kucyki -c D:\Programowanie\Allegro\gra_kucyki\kucyk.cpp -o obj\Release\kucyk.o
In file included from D:\Programowanie\Allegro\gra_kucyki\map.h:4:0,
                 from D:\Programowanie\Allegro\gra_kucyki\kucyk.h:6,
                 from D:\Programowanie\Allegro\gra_kucyki\kucyk.cpp:4:
D:\Programowanie\Allegro\gra_kucyki\wybiorcza_lista_obiektow.h:17:43: error: 'mapa' does not name a type
D:\Programowanie\Allegro\gra_kucyki\wybiorcza_lista_obiektow.h:17:48: error: ISO C++ forbids declaration of 'parameter' with no type [-fpermissive]
D:\Programowanie\Allegro\gra_kucyki\wybiorcza_lista_obiektow.h:31:35: error: 'mapa' does not name a type
D:\Programowanie\Allegro\gra_kucyki\wybiorcza_lista_obiektow.h:31:40: error: ISO C++ forbids declaration of 'parameter' with no type [-fpermissive]
D:\Programowanie\Allegro\gra_kucyki\kucyk.cpp: In member function 'void glowny_bohater::wyswietlanie_kucyka(BITMAP*, int, int)':
D:\Programowanie\Allegro\gra_kucyki\kucyk.cpp:26:5: warning: 'void textprintf(BITMAP*, const FONT*, int, int, int, const char*, ...)' is deprecated (declared at d:\program files\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/allegro/alcompat.h:177) [-Wdeprecated-declarations]
D:\Programowanie\Allegro\gra_kucyki\kucyk.cpp:26:87: warning: 'void textprintf(BITMAP*, const FONT*, int, int, int, const char*, ...)' is deprecated (declared at d:\program files\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/allegro/alcompat.h:177) [-Wdeprecated-declarations]
D:\Programowanie\Allegro\gra_kucyki\kucyk.cpp:27:5: warning: 'void textprintf(BITMAP*, const FONT*, int, int, int, const char*, ...)' is deprecated (declared at d:\program files\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/allegro/alcompat.h:177) [-Wdeprecated-declarations]
D:\Programowanie\Allegro\gra_kucyki\kucyk.cpp:27:87: warning: 'void textprintf(BITMAP*, const FONT*, int, int, int, const char*, ...)' is deprecated (declared at d:\program files\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/allegro/alcompat.h:177) [-Wdeprecated-declarations]
Process terminated with status 1 (0 minute(s), 0 second(s))
4 error(s), 4 warning(s) (0 minute(s), 0 second(s))
Nie rozumiem dlaczego mam te błędy, skoro w innym pliku wszystko jest ok:
C/C++
#ifndef GLOWNY_BOHATER_H
#define GLOWNY_BOHATER_H
//***********************************
//Plik: osoba.h
//***********************************
#include "map.h"
#include "funkcje.h"
#include <allegro.h>
#include<string>
#include <tablica_zderzen.h>


///////////definicja klasy///////////
class glowny_bohater
{
    friend class tablica_zderzen;
    char nazwa[ 80 ];
    char nazwa2[ 80 ];
    BITMAP * obrazek_glownego_bohatera;
    BITMAP * animacja_glownego_bohatera;
    int w;
    int sz;
    int x;
    int y;
    const int dlugosc_animacji;
    tablica_zderzen * wsk_na_tablice_animacji_obiektow_zwroconych_w_prawo;
    tablica_zderzen * wsk_na_tablice_animacji_obiektow_zwroconych_w_lewo;
    int * wsk_na_tablice_z_kooordynatami_ruchu;
    int przebieg_animacji;
    tablica_zderzen obiekt_zwrocony_w_prawo;
    tablica_zderzen obiekt_zwrocony_w_lewo;
    mapa * wsk_na_mape;
    enum akcja { stoi, biegnie, skacze };
    akcja co_robi;
    enum kierunek { prawo, lewo };
    kierunek w_ktora_strone_jest_zwrocony;
public:
    const tablica_zderzen & ktora_tablice_zderzen_urzyc();
    int wartosc_x();
    int wartosc_sz();
    int wartosc_y();
    int wartosc_w();
    void wyswietlanie_kucyka( BITMAP * na_co, int przesuniecie_wzgledem_ekranu_x, int przesuniecie_wzgledem_ekranu_y );
    void poruszanie_kucykiem( bool czy_ma_byc_koordynator_ruchu = false );
    void polaczenie_z_aktualna_mapa( mapa & aktualna );
    void ustawienie_koordynatu_ruchu( std::string nazwa_pliku_z_koordynatorami );
    void koorydnat_ruchu();
    void pobranie_pozycji_poczatkowej( const mapa & ); //                                                                                         <-tu jest funkcja z klasą mapa
    glowny_bohater( const char * nazwa_obrazka, const char * nazwa_animacji, int szerokosc, int wysokosc, int ile_klatek_ma_animacja );
    ~glowny_bohater();
};
////////koniec definicji klasy///////
#endif
Jeżeli to będzie potrzebne to to jest ta klasa:
C/C++
#ifndef MAP_H
#define MAP_H
#include "tablica_zderzen.h"
#include "wybiorcza_lista_obiektow.h"
#include <allegro.h>
#include<string>
#include <fstream>
///////////definicja klasy///////////
class mapa
{
    BITMAP * ziemia;
    BITMAP * obraz;
    int rozdzielczosc_x;
    int rozdzielczosc_y;
    int wymiar_mapy_x;
    int wymiar_mapy_y;
    int bohater_poczatkowe_x;
    int bohater_poczatkowe_y;
    int y;
    int ilosc_obiektow;
    int * wsk_na_x_obiektu;
    int * wsk_na_y_obiektu;
    int obiekt_szerokosc;
    int obiekt_dlugosc;
    std::string nazwa_pliku_txt_mapy;
    std::string nazwa_pliku_txt_z_ziemia;
    std::ifstream plik;
    tablica_zderzen obiekt;
    //wybiorcza_lista_obiektow_prawo lista;
public:
    friend class tablica_zderzen;
    friend class glowny_bohater;
    friend class wybiorcza_lista_obiektow;
    friend class wybiorcza_lista_obiektow_prawo;
    void tworzenie_mapy();
    void edytor_mapy();
    int czytanie_mapy();
    void wyswietl_mape( BITMAP * na_co, int przesuniecie_wzgledem_ekranu_x, int przesuniecie_wzgledem_ekranu_y );
    void stworz_tablice_zderzen_obiektu();
    mapa( const char * );
    ~mapa();
};



////////koniec definicji klasy///////
#endif
Możliwe, że coś jest nie tak z tymi funkcjami wirtualnymi? To moja pierwsza proba dziedziczenia i funkcji wirtualnych.
P-127578
stryku
» 2015-03-02 23:47:18
Masz zapętlenie(nie wiem jak to się nazywa dokładnie. Ktoś mądrzejszy może poprawić :)).
Mapa includuje
#include "wybiorcza_lista_obiektow.h"
, a wyborcza lista obiektów
#include "map.h"
. Jak się zdarza takie coś w kodzie to znaczy, że jest on źle przemyślany. W dobrze zaprojektowanym programie nie powinno takie coś wystąpić
P-127579
DejaVu
» 2015-03-04 01:05:43
P-127651
« 1 »
  Strona 1 z 1