#include "alapanyag.hpp"
using namespace std;
Alapanyag::Alapanyag(const string& nev,
double ch, double feh, double zs, double rost,
double ar)
: nev(nev),
szenhidrat_100g(ch), feherje_100g(feh), zsir_100g(zs), rost_100g(rost),
ar_100g(ar)
{}
//Alapanyag::Alapanyag(const Alapanyag& masik)
//
// : nev(masik.nev),
// szenhidrat_100g(masik.szenhidrat_100g), feherje_100g(masik.feherje_100g), zsir_100g(masik.zsir_100g), rost_100g(masik.rost_100g),
// ar_100g(masik.ar_100g)
// {}
string Alapanyag::nev_get() const { return nev; }
double Alapanyag::ch_get() const { return szenhidrat_100g; }
double Alapanyag::feherje_get() const { return feherje_100g; }
double Alapanyag::zsir_get() const { return zsir_100g; }
double Alapanyag::rost_get() const { return rost_100g; }
double Alapanyag::ar_get() const { return ar_100g; }
void Alapanyag::ar_set(double uj_ar) { ar_100g = uj_ar; }
ostream& operator<<(ostream& os, const Alapanyag& a) { // Alapból NEM tudja a fordító, hogyan kell kiírni egy Alapanyag példányt!
// A C++ csak a beépített típusokat (int, double, string, stb.) tudja értelmesen kiírni.
os << a.nev << " (100g): " // Az operator<< egy barát vagy külső függvény,
<< "CH: " << a.szenhidrat_100g << "g, " // amit arra "tanítasz meg", hogy hogyan nézzen ki a kiírásod.
<< "Feh: " << a.feherje_100g << "g, " // Ezt a függvényt hívja meg a cout << objektum kifejezés.
<< "Zsír: " << a.zsir_100g << "g, "
<< "Rost: " << a.rost_100g << "g, " // A függvény két paramétert vár:
<< "Ár: " << a.ar_100g << " Ft"; // ostream& os a kimeneti adatfolyam (pl. cout)
// const Alapanyag& a az általad kiíratandó objektum
return os;
}