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

[C++] Globalna dwuwymiarowa tablica obiektów

Ostatnio zmodyfikowano 2014-06-10 16:55
Autor Wiadomość
Piotrek1910
Temat założony przez niniejszego użytkownika
[C++] Globalna dwuwymiarowa tablica obiektów
» 2014-06-09 21:27:18
Witajcie pisze sobie gre. I nastał czas, że potrzebuje użyć klasy. Utworzyłem sobie klase w pliku include.h.
C/C++
class Blok
{
public:
    float x;
    float y;
};


Blok blok[ 5 ][ 6 ];
W pliku main.cpp mam Blok blok[5][6]; no i uzupełniam dane za pomocą pętli.
C/C++
for( int i = 0; i < 5; i++ )
{
    cout << "I" << endl;
    for( int j = 0; j < 6; j++ )
    {
        cout << "J" << endl;
        blok[ i ][ j ].x = xx;
        blok[ i ][ j ].y = yy;
        xx += 16 + szerokosc;
    }
    yy += 16 + wysokosc;
    xx = 40;
}
W pliku ball.cpp próbuje odczytać pewien segment danych takim sposobem:
C/C++
std::cout << blok[ 1 ][ 1 ].y << " | " << blok[ 1 ][ 1 ].x << std::endl;
I niestety problem jest w tym, że konsola wyświetla 0 | 0.

I co moge zrobić? Pomożecie?
P-111849
pekfos
» 2014-06-09 22:08:30
C/C++
Blok blok[ 5 ][ 6 ];
To nie powinno być w nagłówku.
P-111856
michal11
» 2014-06-09 22:21:16
Ciężko powiedzieć bez większej ilości kodu ale prawdopodobnie źle przesyłasz argumenty do funkcji.
P-111864
Piotrek1910
Temat założony przez niniejszego użytkownika
» 2014-06-10 15:27:28
pekfos, a gdzie powinno? Bo ja próbowałem inaczej ale niestety kompilator mówił mi, że klasa jest dwa razy zdefiniowana.

michal11. ale, że jak źle?
P-111877
michal11
» 2014-06-10 15:34:01
Jak już pisałem, ciężko powiedzieć, ale z tego co piszesz to prawdopodobnie przesyłasz argumenty do funkcji przez kopię.
P-111879
pekfos
» 2014-06-10 15:44:55
a gdzie powinno?
Deklaracja w nagłówku, definicja w implementacji.
P-111881
Piotrek1910
Temat założony przez niniejszego użytkownika
» 2014-06-10 16:52:55
pekfos, tak tylko, że to nie działa. Próbowałem umieścić definicje troche w innym miejscu i wyszło: -1.07374e+008 | -1.07374e+008
P-111885
DejaVu
» 2014-06-10 16:55:13
Jeżeli już koniecznie chcesz mieć tablicę globalną to:
C/C++
//PLIK: *.h/*.hpp
extern Blok blok[ 5 ][ 6 ];

//PLIK: *.c/*.cpp
Blok blok[ 5 ][ 6 ];
 
P-111886
« 1 »
  Strona 1 z 1