GarryMoveOut Temat założony przez niniejszego użytkownika |
Pobieranie obiektów do funkcji » 2013-12-26 19:01:13 Chcę pobrać obiekty do funkcji ale nie do funkcji klasy tylko do zwykłej funkcji. Napisałem takie coś, działa ale nie tak jak chcę. Ponieważ mam tylko dostęp do parametrów które są w klasie baza a nie mam dostępu do parametrów klasy gracze. Jak zamienię rodzaj parametrów pobieranych przez funkcje "void przeciwnik(gracz atakujacy, gracz obronca)" to VS mi sypie że: no suitable user-defined conversion from "baza" to "gracze" exists. Jak wyjść z tego problemu ? Myślałem też nad stworzeniem metody w klasie gracze i tam umieścić walke ale potem nie wiem jak taką funkcję wywołać w mainie. ...
void walka( baza atakujacy, baza obronca ) { cout << atakujacy.opis << " vs " << obronca.opis << endl; }
int main() { int krok = 0; gracze czlowiek( 100, "czlowiek", 10, "Bron sie!" ); gracze troll( 20, "Troll", 5, "Oghh" ); gracze ogr( 15, "Ogr", 6, "Arggh" ); gracze elf( 17, "Elf", 3, "Ooo" ); gracze mag( 30, "Magik", 10, "Abra kadabra" ); gracze rycerz( 50, "Rycerz", 15, "Wio" ); przeszkody kamien( 5, "kamyczek", 1, 1 ); przeszkody drzewo( 20, "drzewo", 2, 10 ); przeszkody skala( 25, "skala", 5, 20 ); przeszkody krzaki( 10, "krzaki", 1, 30 ); przeszkody gora( 1000, "gora", 20, 100 ); baza * lista[ 10 ] = { & troll, & kamien, & ogr, & drzewo, & elf, & skala, & mag, & krzaki, & rycerz, & gora }; for( int i = 0; i < 10; i++ ) walka( czlowiek,( * lista[ i ] ) ); system( "Pause" ); return 0; }
|
|
pekfos |
» 2013-12-26 19:10:43 Rzutuj w dół, do gracze. A najlepiej użyj metody wirtualnej. |
|
GarryMoveOut Temat założony przez niniejszego użytkownika |
» 2013-12-26 21:31:48 |
|
pekfos |
» 2013-12-26 21:56:26 Drugi jako argument..? |
|
GarryMoveOut Temat założony przez niniejszego użytkownika |
» 2013-12-27 11:52:01 Źle zrozumiałem funkcje wirtualne już wszystko zrobiłem, dzięki :)
EDIT: Ale napotkałem inny problem, jeśli bym chciał żeby funkcja zwracała jakieś wartości ? Co w tedy ? |
|
« 1 » |