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

Note: x was declared here

Ostatnio zmodyfikowano 2013-11-03 18:52
Autor Wiadomość
czosnek17
Temat założony przez niniejszego użytkownika
Note: x was declared here
» 2013-11-02 23:21:28
Błąd pokazuje przy linijce
hero * gracz1;
(gracz1 was declared here)

C/C++
hero * gracz1;

while() //pętla gry
{
    if() //jakiś warunek
    {
        delete gracz1;
    }
    if() //drugi warunek
    {
        gracz1 = new hero( "h2.png", "gracz1" );
       
    }
    //jakieś operacje na gracz1
   
}
Dlaczego jest taki błąd i co on właściwe oznacza? Jakby co to nigdy nie usuwam gracz1 przed jego skonstruowaniem.
P-95126
den93
» 2013-11-02 23:46:52
Kod wygląda na poprawny, może podaj go więcej.
P-95127
DejaVu
» 2013-11-03 01:28:09
Wklej również pełną treść błędu, bo jeszcze nigdy nie widziałem, aby kompilator pisał 'Note'.
P-95132
m4tx
» 2013-11-03 10:14:30
gracz1 was declared here
Krótko: deklarujesz 2 razy gdzieś tę samą zmienną. Możliwe też, że trzymasz ją gdzieś w pliku nagłówkowym i to powoduje problemy.
P-95136
Mrovqa
» 2013-11-03 12:20:36
@DejaVu jeżeli się nie mylę, to jest to komunikat GCC/G++, a ty zapewne głównie korzystasz z MSVC.
P-95147
czosnek17
Temat założony przez niniejszego użytkownika
» 2013-11-03 15:52:24
Tak GCC. Na pewno nie deklaruję 2 razy tej zmiennej. I jeszcze dziwna sprawa: włączyłem C::B, skompilowałem projekt i błędu nie było. Zakomentowałem linijkę z operatorem new, skompilowałem, odkomentowałem i znowu jest błąd...
Pełna treść błędu:
C:\Documents and Settings\aaa\Pulpit\projekt sfml\bomber2\main.cpp|324|note: 'gracz1' was declared here|

Jeżeli usunę linijkę z tworzeniem/usuwaniem obiektu to błąd nie występuje.
Zostawiłem linie związane z hero *gracz1. Niektóre fragmenty kodu mogą wyglądać dziwnie.

C/C++
bool nowa_gra = 1;
hero * gracz1;

while()
{
    if( sf::Keyboard::isKeyPressed( sf::Keyboard::F1 ) )
    {
        delete gracz1;
        nowa_gra = true;
    }
   
    if( nowa_gra )
    {
        gracz1 = new hero( "h2.png", "gracz1" );
        nowa_gra = false;
    }
   
    gracz1->abuty();
    gracz1->gpos();
    if( gracz1->kolizja( mapa ) )
    {
        gracz1->spr.setPosition( gracz1->ostpozycja );
    }
    else
    {
        gracz1->ostpozycja = gracz1->spr.getPosition();
    }
   
    gracz1->sterowanie( mapa, 1 );
   
    okno.draw( gracz1->lewybb );
    okno.draw( gracz1->prawybb );
   
    okno.draw( gracz1->spr );
    gracz1->interf.rysuj( okno );
   
}
P-95165
pekfos
» 2013-11-03 16:05:44
Pełna treść błędu:
To nie jest pełna treść błędu.
P-95167
czosnek17
Temat założony przez niniejszego użytkownika
» 2013-11-03 16:34:12
Chodzi o to?
In file included from C:\Documents and Settings\aaa\Pulpit\projekt sfml\bomber2\hero.hpp:5:0,
                 from C:\Documents and Settings\aaa\Pulpit\projekt sfml\bomber2\main.cpp:11:
C:\Documents and Settings\aaa\Pulpit\projekt sfml\bomber2\ggui.hpp:6:7: warning: 'gracz2' may be used uninitialized in this function [-Wmaybe-uninitialized]
C:\Documents and Settings\aaa\Pulpit\projekt sfml\bomber2\main.cpp:325:7: note: 'gracz2' was declared here
In file included from C:\Documents and Settings\aaa\Pulpit\projekt sfml\bomber2\hero.hpp:5:0,
                 from C:\Documents and Settings\aaa\Pulpit\projekt sfml\bomber2\main.cpp:11:
C:\Documents and Settings\aaa\Pulpit\projekt sfml\bomber2\ggui.hpp:6:7: warning: 'gracz1' may be used uninitialized in this function [-Wmaybe-uninitialized]
C:\Documents and Settings\aaa\Pulpit\projekt sfml\bomber2\main.cpp:324:7: note: 'gracz1' was declared here

P-95171
« 1 » 2
  Strona 1 z 2 Następna strona