g++ “n'est pas le nom d'un type” d'erreur
Je travaille sur un petit projet pour mon des structures de classe et ont rencontré un problème même de la TA ne pouvais pas comprendre. Il a été suggéré que je post à ce sujet ici et je pourrais obtenir de l'aide. Donc, ici, il va:
Vue d'ensemble:
J'utilise g++ pour compiler un projet contenant un certain nombre d'en-tête (.h) les fichiers ainsi que leur mise en œuvre correspondant (.rpc) des fichiers. Le projet comporte 3 structures distinctes et de l'exécution d'un calendrier de comparaison entre eux. Les structures de mise en œuvre et de contre sont une binaire min tas, un mouvement de gauche tas, et une inclinaison de tas. Le min tas de mise en œuvre est terminée et il est la compilation de l'amende juste. Cependant, maintenant que je suis en déplacement sur les autres structures, je suis en cours d'exécution dans ce que je suppose (je sais) est une erreur du compilateur.
La Question
Je suis rajouté les fichiers stub pour les électeurs de gauche et de tas ont frappé un mur de briques autant que le compilateur est concerné. En particulier, j'obtiens une erreur qui se lit comme suit:
leftHeap.cpp:15:1: error: ‘LeftistHeap’ does not name a type
Le Code
Voici un coup d'oeil au code:
leftHeap.h
#ifdef LEFTHEAP_H
#define LEFTHEAP_H
class LeftistHeap{
public:
int *root;
LeftistHeap();
~LeftistHeap();
};
#endif
leftHeap.cpp
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <stdio.h>
#include <math.h>
#include "leftHeap.h"
using namespace std;
//Constuctor
LeftistHeap::LeftistHeap(){
root = NULL;
}
Le seul autre endroit que leftHeap.h est inclus dans le main.cpp
main.cpp
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <stdio.h>
#include <math.h>
#include "minHeap.h"
#include "leftHeap.h"
#include "skewHeap.h"
using namespace std;
int main(){
...
voici le makefile que j'utilise:
makefile
all: lab10
lab10: comparison.o minHeap.o leftHeap.o skewHeap.o
g++ comparison.o minHeap.o leftHeap.o skewHeap.o -o lab10
comparison.o: comparison.cpp
g++ -c comparison.cpp
minHeap.o: minHeap.h minHeap.cpp
g++ -c minHeap.h minHeap.cpp
leftHeap.o: leftHeap.h leftHeap.cpp
g++ -c leftHeap.h leftHeap.cpp
skewHeap.o: skewHeap.h skewHeap.cpp
g++ -c skewHeap.h skewHeap.cpp
clean:
rm lab10 *.o
et juste pour être plus approfondie, j'ai également essayé un plus minimaliste makefile
makefile (2)
test:
g++ minHeap.h leftHeap.h skewHeap.h comparison.cpp minHeap.cpp leftHeap.cpp skewHeap.cpp -o lab10
clean:
rm lab10 *.o
J'espère que c'est pas de l'info de surcharge. S'il vous plaît laissez-moi savoir si quelqu'un a des idées sur ce. J'ai regardé les autres g++ "n'est pas le nom d'un type de" questions ici (et un couple de pleine page des recherches google en tant que bien) mais je n'ai pas trouvé quelque chose qui peut rendre compte de cela. J'ai cette intuition qu'il peut être quelque chose de simple que j'ai négligé, mais toute aide serait grandement appréciée.
Merci!
Vous devez vous connecter pour publier un commentaire.
Oeil à votre garde très attentivement:
#ifdef LEFTHEAP_H
.C'est juste une faute de frappe (en supposant qu'il est transcrit avec précision):
dans leftHeap.h devrait être #ifndef