1

我只是在学习 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 。为了简单起见,我已经消除了其他方法。

我收到错误无效使用不完整类型âstruct FreqQ::_heapEntryâfreqq.h:8:10:错误:前向声明âstruct FreqQ::_heapEntryâ

而且我无法弄清楚为什么我的生活。

有任何想法吗??

谢谢!

4

1 回答 1

2

我不明白。您是在 .cpp 中定义您的_hashEntry和结构吗?_heapEntry

将结构声明移动到声明之前的 .h 中class FreqQ,其中使用了结构。

于 2012-11-02T20:27:03.683 回答