我只是在学习C ++,而且我遇到了很多问题。现在我正在尝试使用堆和哈希表来实现频率队列,所以我正在尝试为哈希表托管和堆托盘创建结构。我做的是......
1 #include<iostream>
2 #include<string>
3 #include "freqq.h"
4
5 using namespace std;
6
7
8
9
10 struct _hashEntry {
11 string word;
12 int heapPstn;
13 };
14
15 struct _heapEntry {
16 int frequency;
17 hashEntry* wordInHash;
18 };
^^ the .cpp,
1 #define FREQQ_H_
2 #include <string>
3
4 using namespace std;
5
6 class FreqQ {
7 public:
8 struct _heapEntry;
9 typedef struct _heapEntry heapEntry;
10
11 struct _hashEntry;
12 typedef struct _hashEntry hashEntry;
13
^^ .h。为简单起见,我已经淘汰了其他方法。
我收到了错误 无效使用不完整类型的构造FreqQ :: _heapEntryâ freqq.h:8:10:错误:转发声明âstructFreqQ:: _heapEntryâ
我无法弄清楚为什么对我的生活。
任何想法??
谢谢!
答案 0 :(得分:2)
我不明白。您是在.cpp?
中定义_hashEntry
和_heapEntry
结构
在使用结构的class FreqQ
声明之前将结构声明移动到.h。