Jak uzyskać dostęp z klasy do składników innej klasy ??
Ostatnio zmodyfikowano 2013-07-02 21:36
akwes |
» 2013-07-02 15:46:33 Nie ma sensu pracować na klasach bez ich zrozumienia. Poczytaj o klasach od podstaw Klasy (obiekty) |
|
domin568 Temat założony przez niniejszego użytkownika |
» 2013-07-02 21:05:15 Przeczytałem oraz zanalizowałem , lecz nie ma tam mowy o dziedziczeniu , naprawde nie wiem co począć ;/ . Mam również książke Symfonia c++ , ale tam jest wszystko opisane raczej nie praktycznie , i nie znalazłem nic dotyczącego mojego przypadku :( Chodzi o to ze mam np. taką metode : class postac { public: int atakuj( int sila, int szansa_na_kryta ) { srand( time( NULL ) ); cout << "Twoja sila" << sila << endl; szybkosc_ataku = odswiez_szybkosc_ataku( zrecznosc, szybkosc_ataku, przelicznik_zr_do_szybkosci ); int MIN_OBR = sila * 20; int MAX_OBR = sila * 40; int losuj_kryt; losuj_kryt = rand() % 100; obrazenia =( rand() %( MAX_OBR - MIN_OBR ) ) + MIN_OBR; obrazenia = obrazenia * szybkosc_ataku; if( losuj_kryt <= szansa_na_kryta ) { obrazenia = obrazenia * 2; cout << "Trafiles kryta !!" << endl; } cout << "Twoje obrazenia " << obrazenia << endl; return obrazenia; } protected: int sila; int szansa_na_kryta; double szybkosc_ataku; };
Oraz kiedy wywołam ją z jakiejś innej klasy np. z klasy przeciwnik to sila jest rowna - 1 to znaczy : class przeciwnik { postac bohater1; int obrazenia_bohatera = bohater1.atakuj( sila, szansa_na_kryta ); cout << obrazenia_bohatera; }
Nawet sila w metodzie atakuj jest równa -1 jeżeli wywołam ją z innej klasy . Możecie mi to wytłumaczyć ? Był bym BARDZO wdzięczny :) |
|
kubawal |
» 2013-07-02 21:19:56 |
|
Geniusz |
» 2013-07-02 21:24:17 Też mam Symfonie C++ i wszystko jest tam bardzo dokładnie wytłumaczone (rozdział o dziedziczeniu też) i jest na prawdę wiele przykładów . Proponuje wrócić do rozdziału o klasach zanim się zaczniesz zabierać za dziedziczenie, bo to by było bez sensu.
I jak możesz powiedzieć, że wszystko jest opisane nie praktycznie, skoro po twoim kodzie widać, że ty tą książkę co najwyżej przejrzałeś bez głębszego zastanowienia się nad jej treścią ? |
|
Geniusz |
» 2013-07-02 21:33:56 class przeciwnik { postac bohater1; int obrazenia_bohatera = bohater1.atakuj( sila, szansa_na_kryta ); cout << obrazenia_bohatera; }
Nie możesz napisać takiego czegoś wewnątrz klasy. W klasie się nie umieszcza instrukcji kodu, tylko jej składniki np funkcje, zmienne, obiekty innych klas itd. Jeśli chcesz nadać obiektowi początkową wartość użyj konstruktora, chociaż wątpię byś miał o nim jakiekolwiek pojęcie. |
|
akwes |
» 2013-07-02 21:36:25 Ile razy mam Ci powtarzać? Nie rozumiesz co to jest klasa. To nie jest klasa. Widziałeś gdzieś w Symfonii C++ analogiczną klasę? class przeciwnik { postac bohater1; int obrazenia_bohatera = bohater1.atakuj( sila, szansa_na_kryta ); cout << obrazenia_bohatera; }
Naprawdę, najlepiej zacznij tę książkę czytać od nowa. Jeszcze raz. Dokładnie. |
|
1 « 2 » |