• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błąd w programie w c++ z użyciem podstawowych funkcji i klas

0 głosów
439 wizyt
pytanie zadane 19 listopada 2018 w C i C++ przez Yaso Nowicjusz (150 p.)

Witam!

Jestem początkującym w c++ i próbowałem stworzyć program, zawierający funkcje, przeliczająca, która z dwóch danych postaci wygra walkę. Póki co parametry postaci są z góry podane, ponieważ skupiłem się na podstawowym kodzie. Według kompilatora błąd występuje w 46 linijce, a jego treść to "error: no match for 'operator<<' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'stworzenie')|". Chciałbym, aby ktoś mógł napisać mi, gdzie zrobiłem błąd :) Z góry dziękuję za odpowiedzi!

#include <iostream>
#include <conio.h>
#include <stdio.h>
using namespace std;

class stworzenie {
public:
float hp;
float atk;
};

stworzenie walka (stworzenie jeden, stworzenie dwa)
{
    while( (jeden.hp > 0) && (dwa.hp > 0) )
    {
    jeden.hp - dwa.atk;
    dwa.hp - jeden.atk;
    }
  if (jeden.hp > 0)
  {
    return jeden;
  }
  else
  {
    return dwa;
  }


}

char rozpoczacwalke;

int main()
{
stworzenie gracz, potwor;

gracz.hp = 100.0;
gracz.atk = 10.0;
potwor.hp = 50;
potwor.atk = 15;

    cout << "Rozpoczac walke?";
    rozpoczacwalke = getch();
    if (rozpoczacwalke == '1')
    {
        cout << walka (gracz, potwor);
    }
    else
    {
        cout << "Zamykanie programu";
    }

    return 0;
}

 

komentarz 19 listopada 2018 przez niezalogowany
Co chcesz żeby zostało wypisane na cout?

1 odpowiedź

+1 głos
odpowiedź 19 listopada 2018 przez sefir Dyskutant (8,560 p.)
wybrane 21 listopada 2018 przez Yaso
 
Najlepsza
#include <iostream>
#include <conio.h>
#include <stdio.h>
using namespace std;
 
class stworzenie {
public:
float hp;
float atk;
string nazwa; //dodalem nazwe
};
 
stworzenie walka (stworzenie jeden, stworzenie dwa)
{
    while( (jeden.hp > 0) && (dwa.hp > 0) )
    {
    jeden.hp -= dwa.atk; //poprzednio tylko odejmowales, tu przypisujesz nowa wartosc po odjeciu
    dwa.hp -= jeden.atk; //analogicznie
    }
  if (jeden.hp > 0)
  {
    return jeden;
  }
  else
  {
    return dwa;
  }
 
 
}
 
char rozpoczacwalke;
 
int main()
{
stworzenie gracz, potwor;
 
gracz.hp = 100.0;
gracz.atk = 10.0;
gracz.nazwa = "gracz";
potwor.hp = 50;
potwor.atk = 15;
potwor.nazwa = "potwór";
 
    cout << "Rozpoczac walke?";
    rozpoczacwalke = getch();
    if (rozpoczacwalke == '1')
    {
        stworzenie zwyciezca = walka(gracz, potwor);
        cout << zwyciezca.nazwa; //bład wynikal z tego, ze chciales wypisac obiekt a potrzeba typ prosty ktorym jest np string
    }
    else
    {
        cout << "Zamykanie programu";
    }
 
    return 0;
}

 

komentarz 21 listopada 2018 przez Yaso Nowicjusz (150 p.)
Dzięki!! :)

Podobne pytania

0 głosów
1 odpowiedź 512 wizyt
pytanie zadane 29 listopada 2019 w C i C++ przez Karoga Nowicjusz (140 p.)
0 głosów
1 odpowiedź 257 wizyt
pytanie zadane 5 stycznia 2019 w C i C++ przez Łukasz Osmański Nowicjusz (150 p.)

93,742 zapytań

142,678 odpowiedzi

323,297 komentarzy

63,328 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...