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

dziedziczenie = prosba o sprawdzenie kawalka tworzenia kodu

Ostatnio zmodyfikowano 2010-03-28 23:35
Autor Wiadomość
dmx81
Temat założony przez niniejszego użytkownika
dziedziczenie = prosba o sprawdzenie kawalka tworzenia kodu
» 2010-03-27 21:43:11
tu moj kodzik, chcialem wiedziec, czy dobrze robie - program dziala, ale czy napewno dobrze robie, moze cos niepotrzebnie dopisuje przy kontruktorach, bo wlasnie o nie mi chodzi

C/C++
class C_KLASA_BAZOWA1
{
public:
    int i_x, i_y, i_s, i_w, klatka;
    bool b_disp;
    BITMAP * obrazek; //bool i bitmap definiuje przy tworzeniu obiektu
    C_KLASA_BAZOWA1() { }
    C_KLASA_BAZOWA1( int x, int y, int s, int w )
        : i_x( x )
        , i_y( y )
        , i_s( s )
        , i_w( w )
    { }
    C_KLASA_BAZOWA1( int & tabx, int & taby, int s, int w, int _klatka )
        : i_x( tabx )
        , i_y( taby )
        , i_s( s )
        , i_w( w )
        , klatka( _klatka )
    { }
    virtual void rysuj( BITMAP * bufor );
};
void C_KLASA_BAZOWA1::rysuj( BITMAP * bufor )
{
    masked_blit( this->obrazek, bufor, 0, 0, this->i_x, this->i_y, this->i_s, this->i_w );
}
class C_MAPA
    : public C_KLASA_BAZOWA1
{
public:
    short klatka, licznik;
    int scrollx, scrolly;
    C_MAPA( int i_x, int i_y, int i_s, int i_w )
        : C_KLASA_BAZOWA1( i_x, i_y, i_s, i_w )
    { scrollx = 0, scrolly = 0; klatka = 0, licznik = 0; }
    C_MAPA() { scrollx = 0, scrolly = 0; klatka = 0, licznik = 0; }
    virtual void rysuj( BITMAP * bufor );
};
void C_MAPA::rysuj( BITMAP * bufor )
{
    masked_blit( this->obrazek, bufor, this->scrollx, this->scrolly, this->i_x, this->i_y, this->i_s, this->i_w );
}
class C_ROZBITEK
    : public C_KLASA_BAZOWA1
{
public:
    short klatka, licznik;
    bool uratowany;
    int miejsce_w_srodku;
    short pozycjax, pozycjay;
    C_ROZBITEK()
        : C_KLASA_BAZOWA1( i_x, i_y, i_s, i_w, klatka )
    { licznik = 0, miejsce_w_srodku = 0, uratowany = NULL; }
    virtual void rysuj( BITMAP * bitmapa );
};
  dopisalem inna klase troszke inaczej, bez uzycia jawnego klasy bazowej
C/C++
class C_ROZBITEK
    : public C_KLASA_BAZOWA1
{
public:
    bool uratowany;
    int miejsce_w_srodku;
    short pozycjax, pozycjay;
    C_ROZBITEK( int & tabx, int & taby, int s, int w ) { i_x = tabx, i_y = taby, i_s = s, i_w = w, licznik = 0, miejsce_w_srodku = 0, uratowany = NULL, klatka = 0; }
    virtual void rysuj( BITMAP * bitmapa );
};

mam jeszcze jedno pytanie, po zadeklarowaniu tu kontruktora i argumentow, nastepuje jego cialo i co ma sie stac z dziedziczonymi zmiennymi - przyjmuja wartosci argumentow tworzonego obiektu,  a jesli chcialbym to zrobic w sposob jak w klasie bazowej, czyli nie w ciele - a zaraz za nawiasem deklaracji? bo jak robie normalnie, to otrzymuje komunikat, ze takich zmiennych nie ma w tej klasie (i_x itd - te co sa dziedziczone) , juz ktos mi pokazywal, ze trzeba wywolac jawnie konstruktora klasy bazowej, mozna o przyklad na moim przykladzie? dzieki
P-15498
szyx_yankez
» 2010-03-27 21:54:27
Popracuj nad czytelnością kodu to może ktoś Ci odpowie.
P-15501
dmx81
Temat założony przez niniejszego użytkownika
» 2010-03-27 23:46:30
czyli jak powinien wygladac bardziej czytelny kod, wieksze odstepy miedzy kolejnymi deklaracjami, definicjami? czy w samych klasach cos nie tak?
P-15507
szyx_yankez
» 2010-03-28 07:40:20
Powyrównuj do pierwszego, przecinek nad przecinkiem itd.
P-15510
malan
» 2010-03-28 13:21:53
Wystarczyło by gdyby poprawił konstruktory, tzn. zadeklarował je w klasie, a zdefiniował poza nią, dodał entery pomiędzy klasami i tyle ;p.
P-15527
Elaine
» 2010-03-28 13:37:30
Wystarczyłoby Ctrl+Shift+F.

Wystarczyło by gdyby poprawił konstruktory, tzn. zadeklarował je w klasie, a zdefiniował poza nią
Po co? Może właśnie chce mieć je inline?
P-15530
malan
» 2010-03-28 13:42:43
No ja wiem, że to sprawa programisty jak wygląda jego kod, ale szyx_yankez się czepia ;p. Ostatnio to widziałem nieczytelny kod...- 20 wierszy, gdzie normalnie zajmowałby z 50 :). Koleś enterów nie lubi.
P-15531
dmx81
Temat założony przez niniejszego użytkownika
» 2010-03-28 19:16:20
wlasnie o taka uwage mi chodzilo - bo wczesniej to tak robilem - najpierw deklaracja konstruktora, a poza cialem klasy definicja konstruktora, ale ktos mi podpowiedzial, ze szybciej i lepiej wlasnie takim to sposobem :y(Y),x(X) :)
P-15549
« 1 » 2
  Strona 1 z 2 Następna strona