Wg Visual Studio 2010 nie zdefiniowałem klasy...

0

Witam wszystkich. Dostaję dwa errory i za nic nie mogę znaleźć powodu. Może moglibyście spojrzeć świeżym wzrokiem i mi pomóc?

Oto mój plik Headquarters.h:

//DONE

#ifndef HEADQUARTERS_H
#define HEADQUARTERS_H
#include "node.h"
#include "Main_trucks_list.h"
#include "Main_firefighters_list.h"
#include <string>

using namespace std;

class Firebrigade;
class Accident;
class Main_trucks_list;	//TUTAJ PRZECIEŻ DEKLARACJA
class Main_firefighters_list;	//I TU TEŻ

class Headquarters
{
private:
	Main_trucks_list my_main_trucks_list;  //TUTAJ ERROR
	Main_firefighters_list my_main_firefighters_list;   //TUTAJ ERROR
	node<Accident>* accident_head;	//head of the list of accidents
	node<Firebrigade>* firebrigade_head;	//head of the list of firebrigades
	string town;
	string street;
	friend class Accident;
	friend class Firebrigade;
	friend class Firefighter;
	friend class Truck;

public:
	node<Firebrigade>* get_firebrigade_head() const;	//DONE
	bool insert_firebrigade(Firebrigade*);			//DONE
	bool delete_firebrigade(string address);		//DONE
	bool create_accident(string place, unsigned how_many_firefighters);		//DONE
	unsigned count_accidents() const;				//DONE
	bool remove_accident(unsigned id);				//DONE
	void display_accidents() const;					//DONE
	Headquarters(string town, string street);		//DONE
	~Headquarters();								//DONE
};

#endif

Błędy:

Error 1 error C2079: 'Headquarters::my_main_trucks_list' uses undefined class 'Main_trucks_list' c:\users\pawel\desktop\c++ project\fire brigade\fire brigade\headquarters.h 20

Error 2 error C2079: 'Headquarters::my_main_firefighters_list' uses undefined class 'Main_firefighters_list' c:\users\pawel\desktop\c++ project\fire brigade\fire brigade\headquarters.h 21

Nie wiem o co chodzi. W liniach 14 i 15 przecież deklaruję klasy, które są zdefiniowane w plikach Main_trucks_list.h i Main_firefighters_list.h, więc jaki jest problem?

Może to też Wam się przyda do zlokalizowania błędów:
Main_trucks_list.h:

//DONE

#pragma once
#include "Truck.h"

class Truck;

class Main_trucks_list
{
private:
	node<Truck>* head;

public:
	bool insert_truck(Truck*);
	bool remove_truck(unsigned id);
	Main_trucks_list(void);
	~Main_trucks_list(void);
	Truck* find(unsigned id) const;
};

Main_firefighters_list.h

//DONE

#pragma once
#include "Firefighter.h"

class Firefighter;

class Main_firefighters_list
{
private:
	node<Firefighter>* head;

public:
	bool insert_firefighter(Firefighter*);
	bool remove_firefighter(unsigned id);
	Main_firefighters_list(void);
	~Main_firefighters_list(void);
	Firefighter* find(unsigned id) const;
};

Jakieś pomysły?

0

pokaż więcej kodu, bo to wygląda w porządku.

1

Jeżeli deklarujesz wskaźnik na klasę (lub referencję) to wystarczy:
class A;
class B { A *a; };
class C { A &a; };
Natomiast jeżeli masz dziedziczenie lub masz całą klasę jako składową:
class A;
class B:A { };
class B { A a; };
to samej deklaracji nie wystarczy, bowiem kompilator już musi wiedzieć ile bajtów przeznaczyć na ten obiekt.

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