просто получает странную ошибку, и я не совсем уверен, почему.Класс-указатель как элемент данных другого объекта
У меня есть 4 файла (два заголовка и две реализации). Вопрос находится внутри заголовков:
Главный файл ТОЛЬКО включает в себя Station.h, поэтому Stations.h входит в него.
Station.h
#ifndef STATION_H
#define STATION_H
#include "Stations.h"
#include <string>
enum PassType{student, adult};
class Station{
std::string station_name;
unsigned int student_passes;
unsigned int adult_passes;
public:
Station();
void set(const std::string&, unsigned, unsigned);
void update(PassType, int);
unsigned inStock(PassType) const;
const std::string& getName() const;
};
#endif
Stations.h
#ifndef STATIONS_H
#define STATIONS_H
#include "Station.h"
namespace w2{
class Stations{
Station *station;
public:
Stations(char *);
void update() const;
void restock() const;
void report() const;
~Stations();
};
}
#endif
Он не знает, что станция находится. Я получаю следующую ошибку:
./Stations.h:9:2: error: unknown type name 'Station'; did you mean 'Stations'?
Station *station;
Что именно я здесь не хватает? Я не самый сильный разработчик на C++, так голый со мной, пожалуйста.
Есть ли более одного файла с именем Station.h, и вы ошибаетесь? В каких пространствах имен? – dlf
Существуют ли строки '# ifdef' для предотвращения множественного включения? Пожалуйста, включите все содержимое файлов. –
@ R Sahu - В обоих заголовках есть. – Kris