剛得到一個奇怪的錯誤,我不完全確定爲什麼。類指針作爲另一個對象的數據成員
我有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 2014-09-18 21:06:12
是否有任何'#ifdef'行來防止多重包含?請包括文件的全部內容。 – 2014-09-18 21:06:20
@ R Sahu - 兩個標題都有。 – Kris 2014-09-18 21:07:29