Jeden dzień straciłem już na rozwiązywanie tego problemu więc teraz czekam na wasze sugestie.
Mam klasę firma będzie ona tworzona w main'ie.Klasa Firma posiada pole wskaźnik na klase Wydatki(w konstruktorze Firmy tworzę nową instancję klasy Wydatki na mój wskaźnik). W klasie Wydatki mam pole wskaźnik na klasę Firma i w konstruktorze chcę przypisać mu instancję klasy Firma.
Czyli ogólnie klasa Firma tworzy obiekt klasy Wydatki i przekazuje mu wskaźnik na samą siebie.
Niestety w pliku Wydatki.h w 8 lini(Firma* firmaWydatki) wyskakuje error
'Firma' does not name a type
Jedyne co mi przychodzi do głowy to, że includ'y jakoś się blokują ale próbowałem już je poprzestawiać i pousuwać na milion sposobów i nadal Wydatki nie widzą Firmy...
plik Firma.h
#ifndef FIRMA_H
#define FIRMA_H
#include <vector>
#include "Pracownik.h"
#include "Reklama.h"
#include "BadanieRynku.h"
#include "Wydatki.h"
class Firma
{
private:
double aktualneWydatki_;
double przychody_;
double kapital_;
double rozpoznawalnosc_;
double iloscPracownikow_;
double innowacyjnosc_;
double szybkoscProdukcji_;
double opinia_;
std::vector<Pracownik*> listaPracownikow_;
Reklama* reklama_;
BadanieRynku* badanieRynku_;
Wydatki* wydatki_;
public:
Firma();
~Firma();
void ZatrudnijPracownika(Pracownik* pracownik);
void KupReklame(Reklama* reklama);
void UsunReklame();
void FunduszeNaBadanieRynku(BadanieRynku* badanieRynku);
void UsunFunduszeNaBadanieRynku();
void ZaktualizujRozpoznawalnosc(double rozpoznawalnosc);
void ZaktualizujIloscPracownikow(double iloscPracownikow);
void ZaktualizujSzybkoscProdukcji(double szybkoscProdukcji);
void ZaktualizujInnowacyjnosc(double innowacyjnosc);
void ZaktualizujOpinie(double opinia);
void ZaktualizujAktualneWydatki();
};
plik Firma.cpp
#include "Firma.h"
Firma::Firma()
{
aktualneWydatki_=0;
przychody_=0;
kapital_=0;
rozpoznawalnosc_=0;
iloscPracownikow_=0;
innowacyjnosc_=0;
szybkoscProdukcji_=0;
opinia_=0;
wydatki_ = new Wydatki(this);
}
Firma::~Firma()
{
delete wydatki_;
delete reklama_;
delete badanieRynku_;
std::vector<Pracownik*>::iterator i;
i=listaPracownikow_.begin();
for(i;i!=listaPracownikow_.end();++i)
{
delete *i;
}
delete this;
}
void Firma::ZatrudnijPracownika(Pracownik* pracownik)
{
listaPracownikow_.push_back(pracownik);
}
void Firma::KupReklame(Reklama* reklama)
{
reklama_=reklama;
}
void Firma::UsunReklame()
{
delete reklama_;
}
void Firma::FunduszeNaBadanieRynku(BadanieRynku* badanieRynku)
{
badanieRynku_=badanieRynku;
}
void Firma::UsunFunduszeNaBadanieRynku()
{
delete badanieRynku_;
}
void Firma::ZaktualizujRozpoznawalnosc(double rozpoznawalnosc)
{
}
void Firma::ZaktualizujIloscPracownikow(double iloscPracownikow)
{
}
void Firma::ZaktualizujSzybkoscProdukcji(double szybkoscProdukcji)
{
}
void Firma::ZaktualizujInnowacyjnosc(double innowacyjnosc)
{
}
void Firma::ZaktualizujOpinie(double opinia)
{
}
void Firma::ZaktualizujAktualneWydatki()
{
}
#endif // FIRMA_H
plik Wydatki.h
#ifndef WYDATKI_H
#define WYDATKI_H
#include "Firma.h"
class Wydatki
{
private:
Firma* firmaWydatki;
public:
Wydatki(Firma* firma);
~Wydatki();
void Oblicz();
};
#endif // WYDATKI_H
plik Wydatki.cpp
#include "Wydatki.h"
Wydatki::Wydatki(Firma* firma)
{
firmaWydatki = firma;
}
Wydatki::~Wydatki()
{
}
void Wydatki::Oblicz()
{
}