klasa i obiekt jako tablica

0

Chcialbym zrobic klase , ktora ma 4 obiekty zapisane jako tablica cztero- elementowa.
Zastanawiam sie czy jest to mozliwe??
Napisalem to jak ponizej ale wyskakuje mi bład.
plik zawodnik.h

 

class zawodnik

{

    char nazwisko[40];
    int szybkosc;
    int numer;
    int ktory_gracz;
    int pozycja;
    int sciezka;
    int krok;

public:
    void zapamietaj( const char* nazwa,int speed,int nr,int kt_gracz, int step, int poz, int way);
}

plik zawodnik.cpp

 
void zawodnik::zapamietaj( const char* nazwa,int speed,int nr,int kt_gracz, int step, int poz, int way)

{
 strcpy(nazwisko,(nazwa? nazwa:"Anonim"));
 szybkosc=speed;
 pozycja=poz;
 numer=nr;
 ktory_gracz=kt_gracz;
 sciezka=way;
 step=krok;

}

plik main:


int *gracz;

int main()

{
  int zawodnicy;

gracz=new int [zawodnicy-1];
 int *w_gracz=gracz;

zawodnik gracz[0], gracz[1], gracz[2], gracz[3]; // tutaj wyskakuje blad
}
 

Zakladam ze uzycie tablic obiektów jest mozliwy...
Co robię źle?

Oto informacja jaka mi sie pojawia:

== Build: Debug in mecz (compiler: Copy of GNU GCC Compiler) ===

D:\C++\mecz\boisko.h|18|warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]|
D:\C++\mecz\boisko.h|19|warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]|
D:\C++\mecz\main.cpp||In function 'int main()':|
D:\C++\mecz\main.cpp|77|error: conflicting declaration 'zawodnik gracz [1]'|
D:\C++\mecz\main.cpp|77|error: 'gracz' has a previous declaration as 'zawodnik gracz [0]'|
D:\C++\mecz\main.cpp|77|error: conflicting declaration 'zawodnik gracz [2]'|
D:\C++\mecz\main.cpp|77|error: 'gracz' has a previous declaration as 'zawodnik gracz [0]'|
D:\C++\mecz\main.cpp|77|error: conflicting declaration 'zawodnik gracz [3]'|
D:\C++\mecz\main.cpp|77|error: 'gracz' has a previous declaration as 'zawodnik gracz [0]'|
D:\C++\mecz\main.cpp|42|warning: unused variable 'w_gracz' [-Wunused-variable]|
== Build failed: 14 error(s), 4 warning(s) (0 minute(s), 0 second(s)) ===

3
zawodnik gracze = new gracz[/*ile tam, z milion*/];

lub

vector<player> players;
2
int main()
  {
   zawodnik gracz[4];
   gracz[0].zapamietaj( ... );
   return 0;
  }
0

Dzieki :)
Teraz ruszyło.
Zrobilem to wg zaleceń 13th_Dragon.
spartanPAGE mozesz mi rozpisac swoja propozycje wraz z konstruktorami bo w Twoim sposobie wyskakuja mi błedy prawdopodobnie jakies problemy ze skladnia:(.
I jeszcze jedna prośba dorobiłem jeszcze jedna tablice w moim programie ( mam ich 6) i zaczęły się problemy:(

W oknie konsoli pojawia sie informacja:

terminate called after throwing an instace of 'std::bad_alloc'
what() 'std::bad_alloc'
This application has requested the runtime to terminate it in an ansual way.

Po usunieciu dowolnej tablicy problem znika:(
Czyżby za duzo tablic???

0
polsky777 napisał(a):

... bo w Twoim sposobie wyskakuja mi błedy prawdopodobnie jakies problemy ze skladnia:(.
Szklana kula pokazuje że błąd jest w okolicach 132-im wiersza.
Chcesz dokładniejsze informacje zgłoś się na forum zawodowych wróżbitów, bo na forach programistycznych trzeba pokazać kod.

0

13th_Dragon a co mozesz napisac na temat informacji z konsoli??

0

13th_Dragon dzieki, przejrzalem deklaracje tablic i faktycznie w jednej tablicy mialem ujemny rozmiar [ilosc_zawodnikow-1].
Chyba teraz bedzie dzialac . Jutro to bardziej rozkminie - dzis juz mi sie oczy kleja:)
Dzieki za pomoc - bardzo fajne to forum musze przyznac:)

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