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 class C_KLASA_BAZOWA1 { public: int i_x, i_y, i_s, i_w, klatka; bool b_disp; BITMAP * obrazek; 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 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 |
|
szyx_yankez |
» 2010-03-27 21:54:27 Popracuj nad czytelnością kodu to może ktoś Ci odpowie. |
|
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? |
|
szyx_yankez |
» 2010-03-28 07:40:20 Powyrównuj do pierwszego, przecinek nad przecinkiem itd. |
|
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. |
|
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? |
|
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. |
|
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) :)
|
|
« 1 » 2 |