Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Przekazywanie zmiennych między klasami

Ostatnio zmodyfikowano 2015-08-18 22:18
Autor Wiadomość
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ść)
P-136480
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ę?
P-136481
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.
P-136485
JanekJr
Temat założony przez niniejszego użytkownika
» 2015-08-18 17:29:37
C/C++
//Czlowiek.h
#include "Kuchnia.h"

...
Kuchnia kuchnia;
...

C/C++
//Czlowiek.cpp
...
case '1':
wczytaj();
ekwipunek.ekwipunek_wypisz();
kuchnia.kuchnia();
menu_glowne();
break;
...

C/C++
//Kuchnia.h

#ifndef KUCHNIA_H_INCLUDED
#define KUCHNIA_H_INCLUDED

#include "Ekwipunek.h"

class Kuchnia
    : public Ekwipunek
{
   
    char wybor_kuchnia;
   
public:
   
    void kuchnia();
    void jedz();
};

#endif // KUCHNIA_H_INCLUDED

C/C++
#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


P-136493
pekfos
» 2015-08-18 17:42:19
Przekaż przez referencję.
P-136496
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 ;)
P-136501
pekfos
» 2015-08-18 17:59:42
P-136503
michal11
» 2015-08-18 22:18:53
Niewiele pokazałeś.
Przykład:

deklaracja:
C/C++
void Kuchnia::fun( int zdrowie );

użycie:
C/C++
kuchnia.fun( czlowiek.getZdrowie() );
P-136512
« 1 »
  Strona 1 z 1