class i konstruktor

0

mam sobie 2 klasy:

class Produkt{
protected:
float Waga;
float CzasGotowania;
int JakaTemperatura;
public:
Produkt(float w, float czas, int temp);
};

class Mikrofala{
public:
Produkt potrawa;
void ZaladujPotrawe(Produkt);

};

no i mam problem, sie wywala przy deklaracji zmiennej "potrawa" w klasie Mikrofala i nie wiem jak to ominac. I jak powinna wygladac funkcja ZaladujPotrawe, ktora ma przypisywac do zmiennej "potrawa" wlasnosci jakiejs zmiennnej wywodzacej sie z klasy Produkt. Mam nadzieje ze za bardzo nie zagmatwalem ;)

Zapomnialem dodac ze klasa MIkrofala takze posiada konstruktor

0

Dodaj W klasie Produkt konstruktor domyslny Produkt() {} i powinno byc OK .

0

Na to juz wpadlem, ale dalej nie wiem jak powinna wygladac funcja ZaladujPotrawe(Produkt), tak aby przypisac wlasnosci zmiennej "potrawa". Kombinuje ze wskaznikami ale cosik mi nie chce wyjsc

0

Zrób dziedziczenie mikrofali po produkcie...

class Mikrofala : public Produkt{
deklaracje własne klasy mikrofala
}

...i wtedy ...

  1. masz dostęp do wszystkich prywatnych metod i danych po Produkcie z poziomu klasy mikrofala.
  2. przy konstruktorze wystarczy zrobić coś takiego...

Mikrofala::Mikrofala(typ_dla_mikrofali dana_dla_mikrofali,float w, float czas, int temp): Produkt(w,czas,temp){
// ... Mikrofala constructor body
}

Co do ładowania innch danych, to zrób kopię konstruktora Produkt, i nazwij go jakos inaczej, I poprzez tą funkcje ładuduj dane.

// Snaj po prostu pomyśl. [do po(m)stu poniżej]

0

flabra slabo [diabel] A co ma produkt do mikrofali zeby mikrofala po nim dziedziczyla. To jest wypaczenie sensu obiektowosci i dziedziczenia - to ma byc odwzorowanie praktycznie maxymalne rzczywistosci w programie a ty takie herezje wypisujesz :-8
To dziedziczenie tutaj w ten sposob nie MA PRAW BYTU !!

Rozwiazanie to przekazanie do ZmienPotrawe wskaznika na Produkt a nie produkt, bo przekazujac caly obiekt on jest kopiowany na stos itp itd
Wiec przekazuj tam wskaznik,a o powyzszej idei dziedziczenia zapomnij [diabel]

1 użytkowników online, w tym zalogowanych: 0, gości: 1