неполный тип, предварительное объявление

Я просто изучаю 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: ошибка: предварительное объявление структуры FreqQ :: _ heapEntryâ

И я не могу понять, почему для меня жизни.

Есть идеи??

Спасибо!

1

Решение

Я не понимаю Вы определяете свой _hashEntry а также _heapEntry структурирует в .cpp?

Переместите объявления структуры в .h перед class FreqQ декларация, где используются структуры.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]