Cześć, mam utworzoną klasę bazową oraz klasę która dziedziczy po niej. Chciałbym, aby klasa bazowa miała jako składową obiekt klasy dziedzicznej. Program ma mieć takie założenie że w klasie Wytwornia chce mieć metodę która sprzedaje produkt (przenosząc obiekt klasy Produkt z wektora magazynWytwornia do wektora magazynMiasto) a następnie chce aby klasa Lombard miała możliwość kupowania produktu (przenosząc obiekt klasy Produkt z wektora magazynMagazyn do wektora magazynLombard). Zależy mi aby dwie klasy dziedziczyły od siebie ponieważ mam tam dużo metod operujących na produktach. Aktualnie mam coś takiego napisanego. Zdaje sobie sprawę że nie ma prawa to działać bo najpierw kompiluję się klasa Wywornia w której obiekt klasy dziedzicznej z Wytwórni, której kompilator jeszcze nie zna. Jednak nie mam pojęcia co mogę zrobić aby to działo. Ma ktoś jakieś rady?
Plik Wytwornia.h
class Wytwornia
{
public:
Wytwornia(float = 500000);
Lombard l1; // wiem wiem ze to tak wygladac nie moze
//rożne metody
protected:
std::vector<std::unique_ptr<Produkt>> magazynWytwornia;
std::vector<std::unique_ptr<Produkt>> magazynMiasto;
private:
float budzetWytwornia;
};
Plik Wytwornia.cpp
Wytwornia::Wytwornia(float budzetWytwornia) : budzetWytwornia(budzetWytwornia)
{
}
Plik Lombard.h
class Lombard : public Wytwornia
{
public:
Lombard(float = 200000);
private:
float budzetLombard;
std::vector<std::unique_ptr<Produkt>> magazynLombard;
};
Plik Lombard.cpp
Lombard::Lombard(float budzetLombard) : budzetLombard(budzetLombard)
{
}