Dziedziczenie a wiele plików nagłówkowych

0

Witam,

Do rzeczy: mam 4 klasy: Resources, Research, Shipyard, Defense. Każda dziedziczy po klasie Object. Każda klasa jest w osobnym pliku .hpp (deklaracje) i .cpp (definicje). W każdej z 4 klas dziedziczących dołączam także Object.hpp. W Main.cpp dołączam wszystkie pliki nagłówkowe tych 4 klas prócz Object.hpp. I teraz jest taki problem, że nie mogę skompilować programu bo nie wiedzieć czemu nie widzi mi klasy Object. Jednak gdy zakomentuje 3 dowolne #include i zostawię 1 to kompiluje. Czyli

//Main.cpp

//Nie działa
#include "Resources.hpp"
#include "Research.hpp"
#include "Shipyard.hpp"
#include "Defense.hpp"


//działa (dowolny jeden odkomentowany)
//#include "Resources.hpp"
#include "Research.hpp"
//#include "Shipyard.hpp"
//#include "Defense.hpp"

W czym może być problem?

0

Zapomniałem dodać że próbowałem skompilować także z dołączonym Object.hpp w Main.cpp. Bez rezultatu. No i sam błąd:

//dla każdej klasy
error C2504: 'Object' : base class undefined
0

Strażnik nagłówka?

0

Dałem w pierwszym includowanym pliku

#ifndef _LORD_PROTECTOR_
#define _LORD_PROTECTOR_
#endif

a w pozostałych trzech warunek, jeżeli nie istnieje to ma includować Object.hpp a jeżeli isntieje to nie. Działa. Dzięki! Ładna piosenka w nagrodę:

0

Protectora używasz w każdym nagłówku do blokowania nagłówka w którym jesteś - i żadnego innego.
Protector powinien mieć unikalny kod, najlepiej zbliżony do nazwy pliku HPP.

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