[C++] Przekazywanie zmiennych między klasami
Ostatnio zmodyfikowano 2015-08-18 22:18
JanekJr Temat założony przez niniejszego użytkownika |
[C++] Przekazywanie zmiennych między klasami » 2015-08-18 16:21:12 Brzmi banalnie i pewnie takie jest, jednak ja jestem początkujący i nie wiem. Mam klasę Człowiek oraz klasę Kuchnia która dziedziczy z klasy Ekwipunek. Klasa człowiek posiada między innymi 2 zmienne(zdrowie i sytość). Klasa Człowiek tworzy obiekt klasy Kuchnia. Kuchnia musi w odpowiedniej sytuacji wykorzystać i przerobić zmienne zdrowie i sytość. I tutaj następuje pytanie: jak przekazać z obiektu klasy Człowiek do obiektu klasy Kuchnia te 2 atrybuty(zdrowie i sytość) |
|
pekfos |
» 2015-08-18 16:24:48 I tutaj następuje pytanie: jak przekazać z obiektu klasy Człowiek do obiektu klasy Kuchnia te 2 atrybuty(zdrowie i sytość) |
Przez referencję? |
|
michal11 |
» 2015-08-18 16:33:14 Pokaż przynajmniej deklarację klasy. W jakich przypadkach te zmienne mają być przekazywane ? N pewno będą potrzebne funkcje rodzaju getZdrowie i getSytosc w klasie Czlowiek. |
|
JanekJr Temat założony przez niniejszego użytkownika |
» 2015-08-18 17:29:37 #include "Kuchnia.h"
... Kuchnia kuchnia; ...
... case '1': wczytaj(); ekwipunek.ekwipunek_wypisz(); kuchnia.kuchnia(); menu_glowne(); break; ...
#ifndef KUCHNIA_H_INCLUDED #define KUCHNIA_H_INCLUDED
#include "Ekwipunek.h"
class Kuchnia : public Ekwipunek { char wybor_kuchnia; public: void kuchnia(); void jedz(); };
#endif
#include "Kuchnia.h" #include <conio.h> #include <iostream>
using namespace std;
void Kuchnia::kuchnia() { cout << endl << "Kuchnia" << endl << endl << "1. Jedz pieczywo" << endl << "2. Pij nap\242j" << endl << "3. Jedz mi\251so" << endl << "ESC. Powr\242t do poprzedniego menu" << endl; wybor_kuchnia = getch(); switch( wybor_kuchnia ) { case '1': produkt_sklepowy = PIECZYWO; jedz(); break; case '2': produkt_sklepowy = NAPOJE; jedz(); break; case '3': produkt_sklepowy = MIESO; jedz(); break; case 27: break; default: kuchnia(); } }
void Kuchnia::jedz() { if( produkt_sklepowy == PIECZYWO ) { ilosc_pieczywo--; zdrowie++; sytosc++; } else if( produkt_sklepowy == NAPOJE ) { ilosc_napoje--; zdrowie += 6; sytosc += 6; } else if( produkt_sklepowy == MIESO ) { ilosc_mieso--; zdrowie += 15; sytosc += 15; } ekwipunek_zapisz(); }
zdrowie i sytosc jest w klasie Czlowiek, ale trzeba je przekazać do klasy Kuchnia |
|
pekfos |
» 2015-08-18 17:42:19 Przekaż przez referencję. |
|
JanekJr Temat założony przez niniejszego użytkownika |
» 2015-08-18 17:57:10 Mogłbyś podać przykład jak to zrobić? Byłbym ogromnie wdzięczny ;)
|
|
pekfos |
» 2015-08-18 17:59:42 |
|
michal11 |
» 2015-08-18 22:18:53 Niewiele pokazałeś. Przykład: deklaracja: void Kuchnia::fun( int zdrowie );
użycie: kuchnia.fun( czlowiek.getZdrowie() );
|
|
« 1 » |