Krever Napisano Październik 23, 2008 Zgłoś Share Napisano Październik 23, 2008 hmm no to od poczatku, mam klase potwor, klasa ta ma funkcje "atakp", mam funkcje "atak" i tutaj pojawia sie moj problem chcialbym by ta funkcja uzyla funkcji atakp ale z obiektu ktorego nazwa podana zostanie jako agument cos takiego void atak(pies) { pies.atakp() } ____________________ void atak(x) { x.atakp() } nie jest to zapis kodu tylko schemat jak ma dzialac* mam nadzieje ze zrozumieliscie, tak wiec jesli jest to mozliwe prosze o rade ( znam jezyk z stopniu ze tak to ujme low+, med- czyli prosze only konsola zaczynam okienka;]) P.S. Toster, nie niechce zaplacic 100zl ( poczytalem forum jzu troche) tak wiec czekam na kogos kto bedzie mial dzien dobroci dla zwierzat. Pozdrawiam Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Październik 23, 2008 Zgłoś Share Napisano Październik 23, 2008 No to zrób, że klasy te Twoje dziedziczą po jednej co ma metodę atakp() i dziedziczą Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Październik 23, 2008 Zgłoś Share Napisano Październik 23, 2008 force dobrze prawi. Zrob sobie jakas klase bazowa z virtualna metoda atakp(). Jako argument przekazujesz obiekt ktory ma atakowac i na nim wywolujesz atakp(). W zaleznosci od tego jaka klasa po nim odziedziyczy taka metoda zostanie wykonana. Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Październik 23, 2008 Zgłoś Share Napisano Październik 23, 2008 aaa, no i obiekty przekazuj przez referencję lub wskaźnik to nie Delphi ani java to byś miał potem duże problemów i nie wiedział gdzie je szukać Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Krever Napisano Październik 23, 2008 Autor Zgłoś Share Napisano Październik 23, 2008 przyznam sie, jedynie rzelecialem te dzialy w symfonii le juz zaczalem doglebnie studiowac, swoja droga po przeczytaniu kilkakrotnie mojego postu stwierdzilem ze nie wynika z niego iz funkcja atak() jest poza jakakolwiek klasa. porostu solo w kodziejako modul ataku ktory mozna by potem uzywac. Pytanie domysliliscie sie tego czy sa to porady dotyczace funkcji zagniezdzonej w klasie? Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Październik 23, 2008 Zgłoś Share Napisano Październik 23, 2008 "funkcji zagniezdzonej w klasie" Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Październik 23, 2008 Zgłoś Share Napisano Październik 23, 2008 skoro nie ma operatora :: a przed nim nazwy klasy to nie jest w żadnej klasie. A tak to nie rozumiem Twego postu: "Pytanie domysliliscie sie tego czy sa to porady dotyczace funkcji zagniezdzonej w klasie? " jak "domysliliscie sie" to potem powinno być "że", a nie po ntym pytanie, nie wiem o jakie porady pytasz, Twoje, książki,nasze? i nei rozumiem: funkcja zagnieżdżona w klasie, funkcja w klasie to funkcja w klasie, nie wiem skąd nazywaniem "zagniżdżona" zagnieżdżona to mogłaby być w metodzie. I nie sądze aby dobrym sposobem nauki było omijanie stron z książki Edit: i znów wyszło, że długo posta pisze Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Krever Napisano Październik 23, 2008 Autor Zgłoś Share Napisano Październik 23, 2008 oj dobra moja wina tak mi sie to slowko wplotlo nie bijce. ide czytac sie nieodzywam, doczytam doucze poproboje za tydzien sie odezwe xD dzieki za pomoc postaram sie poradzic sobei samemu. Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Październik 23, 2008 Zgłoś Share Napisano Październik 23, 2008 Wlasciwa postawa moze cos jeszcze z tej mlodziezy bedzie Przeczytaj dokladnie o polimorfizmie. Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Krever Napisano Październik 25, 2008 Autor Zgłoś Share Napisano Październik 25, 2008 okej, chcialem troche zmodernizowac ten juz denerwujacy modul i napisalem cos takiego: lass potwor { public: string imie; int dmg; int hp; void atakp(int dmg2, gracz& pp) { dmg2=dmg; cout << imie << " atakuje!" << endl; int dmgp; srand( (unsigned)time( NULL ) ); dmgp = rand() % dmg; pp.hp =- dmgp; cout << imie << " zadal Ci " << dmgp << " obrazen." << " Masz teraz " << pp.hp << " hp" << endl; }; przy kompilacji otrzymuje blad: cpp(99) : error C2664: 'potwor::atakp' : cannot convert parameter 2 from 'int' to 'gracz &' sam error rozumiem ale nie widze podstaw do jego istnienia , jaki convert!??? skad sie to int wzielo!?!? dobra w kazdym razie pomozcie Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Październik 25, 2008 Zgłoś Share Napisano Październik 25, 2008 ja nie wiem czy w tym miejscu jest linijka 99, może chodzi o miejsce wywołania funkcji, a Ty kliknąłeś tam w errorze na odwołanie do metody która chciałeś wywołać. napewno dobre miejsce w kodzie pokazujesz? Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Krever Napisano Październik 25, 2008 Autor Zgłoś Share Napisano Październik 25, 2008 okej zapomnijcie xDDDDDD jezu bym chyba igdy nei doszedl skad ten blad.... my 1st program z 2 plikami ( do tej pory ksztalcilem sie czysto teoretycznie) nie popatrzylem ze nazwa pliku to nie ten na ktorym pracowalem a porostu zmienilem argumenty funkcji a w 2 pliku przekazywalem liczbe int dobra naprawilem, ale i tak to co chcialem pierwotnie naprawic sie nie udalo. jak dalej nie bedzie szlo to napisze (editne post). Swoja droga referencje to genialna sprawa( w symfonii czytajac jakos nei zalwazylem tego geniuszu). Link do komentarza Udostępnij na innych stronach More sharing options...
Krever Napisano Październik 25, 2008 Autor Zgłoś Share Napisano Październik 25, 2008 okej, co zrobic z "too many include files" ?? uzywam MS VC++ , oczywiscie nie oczekuje zmniejszyc liczbe plikow bo to tlyko 3 i do tego potrzebne. Sorry za double Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Październik 25, 2008 Zgłoś Share Napisano Październik 25, 2008 ja rozumiem, że w dwóch plikach includujesz ten sam plik to ten plik powiniene być w dyrektywach #ifdef xx #define xx kod $endif, a jako xx coś unikalnego A posty co są blisko siebie to łącz, to tylko jedna godzina, masz guzik "edycja" Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Krever Napisano Październik 26, 2008 Autor Zgłoś Share Napisano Październik 26, 2008 Dobra teoretycznie kumam, dzieki za pomomc. Wiem ale nie wiedzialem czy edycje wyswietyla jako "nowy post" (w sesie ikona tematu) i prawdopodobnie nikt by nie zwrocil uwagi na nowy problem Dzieki waszej pomocy modul jest na ukonczeniu pozostaly 3 sprawy 1. zalatwielm prowizorycznie sma i nie potrzebuje pomocy, 2. postaram sie sobie poradzic 3. no i tu jeszcze raz potrzebuje pomocy hmm sprawa jest prosta, do sranda wrzucam jako ziarno time(NULL) ale to jest nie wystarczajace bo cala walka odbywa sie w ciagu jednej sekundy i wszystkieobrazenia sa identyczne, potrzebuje jkiegos dokladniejszego ziarna dzieki ktoremu byly by to liczby rzeczywiscie losowe Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Październik 26, 2008 Zgłoś Share Napisano Październik 26, 2008 A wywołujesz rand()-a aby coś wylosować? poza tym srand nie losuje jednej liczby losowej na sekundę. To co mu podajesz to jest ziarno, int, a nie wskaźnik na funkcję, to jest po to bo on ma tam w sobie jakaś funkcję losującą i ona różnie działa w zależności od tego ziarna Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Krever Napisano Październik 26, 2008 Autor Zgłoś Share Napisano Październik 26, 2008 wiem.... losuje za pomoca rand ale ustawiam losowanie przez srand( (unsigned)time( NULL ) ); bo samo rand zawsze dalo by mi ta sama liczbe. ale przez to ustawianie i tak mam zawsze 13 . samo srand nie losuje jednej licbzy na sekunde ale z ziarnem time owszem, potrzebuje jakies inne ziarno Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Październik 26, 2008 Zgłoś Share Napisano Październik 26, 2008 Hi! Pokaż, w jaki sposób losujesz. Pozdrawiam! Link do komentarza Udostępnij na innych stronach More sharing options...
Krever Napisano Październik 26, 2008 Autor Zgłoś Share Napisano Październik 26, 2008 Heloo! srand( (unsigned)time( NULL ) ); dmgp = rand() % dmg; To caly kod odpowiedzialny za losowanie. Ale zainteresowalo mnie co innego. Hmm losowanie tej samej licbzy moze byc spowodowane tym ze te 2 linijki w pewnym momencie sa w petli for? i za kazdym razem ziarno jest wkladane od nowa ;] sprobuje ustawic srand poza petla. niestety to nic nie daje, nie mam pojecia co zrobic ;] Link do komentarza Udostępnij na innych stronach More sharing options...
Krever Napisano Październik 27, 2008 Autor Zgłoś Share Napisano Październik 27, 2008 Czyli nikt nie potrafi sprawic by za kazdym razem generowana liczba byla rozna od poprzedniej? to chyba zart:P okej okej rozumiem nie chcecie biedakowi pomoc Wiem z emogle edytowac posta ale i tak by nikt nie zalwazyl Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Październik 27, 2008 Zgłoś Share Napisano Październik 27, 2008 ja widziałem, ale wg mnie: sranda wywołuje się raz oraz nie wiem po co rzutujesz na (unsigned) może w tym jest błąd, bo wszystkie example są, że się nie rzutuje Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Krever Napisano Październik 28, 2008 Autor Zgłoś Share Napisano Październik 28, 2008 no usunalem rzutwanie ( szczerze to skas ta linie zerznalem bo neichcialo mi sie exampli szukac ) przenioslem linie sranda i ladnie dziala;] Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.