Skocz do zawartości

[C++]


Krever

Polecane posty

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

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

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 :D

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

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!???:o skad sie to int wzielo!?!? :o dobra w kazdym razie pomozcie

Link do komentarza
Udostępnij na innych stronach

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

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

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

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

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

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...