g++ "nicht name a type" - Fehler

Ich arbeite an einem kleinen Projekt für meine Strukturen-Klasse, und es laufen in ein Problem, auch der TA konnte es nicht herausfinden. Es wurde vorgeschlagen, poste ich es hier und ich könnte etwas Hilfe. Also hier geht es:

Überblick:
Ich benutze g++ zum kompilieren eines Projekts mit einer Reihe von header (.h) Dateien zusammen mit der zugehörigen Implementierung (.cpp) - Dateien. Das Projekt umfasst 3 separate Strukturen und die Führung eines timing-Vergleich zwischen Ihnen. Die Strukturen umgesetzt und verglichen werden einen binären min-heap, ein Linker Haufen, und ein skew heap. Die min-heap-Implementierung ist abgeschlossen, und ist die Zusammenstellung gut so. Aber jetzt, dass ich ' m verschieben auf die anderen Strukturen, die ich in was ich nehme (die ich kenne) ist ein compiler-Fehler.

Das Problem
Ich bin Konkretisierung des stub-Dateien für die linke Haufen und haben gegen eine Wand geprallt, wie weit die compiler betrifft. Insbesondere bin ich immer die Fehlermeldung:

leftHeap.cpp:15:1: error: LeftistHeap does not name a type

Den Code
Hier ist ein Blick auf relevante 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;
}

Die einzige andere Stelle, leftHeap.h enthalten ist in der 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(){
...

hier ist das makefile, das ich verwende:

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

und nur um extra Gründliche ich habe auch versucht ein minimalistisches 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

Ich hoffe das ist nicht Informationen zu überlasten. Bitte lassen Sie mich wissen, wenn jemand eine Idee hat, auf dieses. Ich habe schaute auf die andere g++ "nicht der name ein geben" - Fragen hier (und ein paar volle Seite der google-Suche), aber habe nicht gefunden, was kann für dieses Konto. Dies habe ich den leisen Verdacht, dass es möglicherweise etwas einfacher, hab ich übersehen, aber jede Hilfe wäre sehr geschätzt werden.

Dank!

InformationsquelleAutor AtomDrake | 2013-04-09
Schreibe einen Kommentar