2016-09-06 7 views
-1

Ich bekomme eine Menge unnötiger Syntaxfehler mit VS2010 und ich habe keine Ahnung, woher sie kommen. Hier sind einige der FehlerMehrere unerklärliche Syntaxfehler in Visual Studio C++

enter image description here

obwohl es tatsächlich noch vom Receiver empfangen werden. Diese bestimmte Datei ist eine, die ich von jemandem erhalten habe, mit dem ich arbeite, und es funktioniert gut auf ihrem System, also sollte es nicht der Code sein, obwohl ich einen Teil des Codeausschnitts unten angehängt habe, der ein gutes Stück enthält ich die Syntaxfehler nicht verstehen:

#include "stdafx.h" 
#pragma once 
//#include "TwoToFourTree.h" 


template<class ItemType> 

TwoToFourTree<ItemType>::TwoToFourTree() 
{ 
    rootPtr = new QuadNode<ItemType>(); 
}//Default 

template<class ItemType> 
TwoToFourTree<ItemType>::TwoToFourTree(const ItemType& anItem) 
{ 
    rootPtr = new QuadNode<ItemType>(anItem); 
} // Default with item 

template<class ItemType> 
TwoToFourTree<ItemType>::~TwoToFourTree() 
{ 
} // Destructor(needs removal function to be finished) 

template<class ItemType> 
QuadNode<ItemType>* TwoToFourTree<ItemType>::getRootPtr() 
{ 
    return rootPtr; 
} // Returns root pointer 

Linie 8 aus dem Bild beginnen bei der ersten Methodendeklaration (der Standard-Konstruktor). Gibt es eine Einstellung, die all diesen Unsinn verursachen könnte? Ich habe überall gesucht und ich habe keine Ahnung, wie ich das angehen soll.

+1

Bitte immer Fehlermeldungen als wörtlichen Text. Bilder sind nicht hilfreich, wie Sie sehen. –

+1

Wenn ich mich richtig erinnere, können Sie die Template-Klassen-Member-Funktionen nicht in einer separaten Quelldatei implementieren. Wenn Sie nicht die .cpp-Datei anstelle der .h-Datei einfügen, erhalten Sie eine Menge ungelöster externer Symbolfehler im Linker, wenn Sie versuchen, sie zu verwenden. Abgesehen davon scheint der erste Fehler von einem fehlenden Semikolon nach dem Wort "Template" sehr früh in der Datei zu kommen. Möglicherweise fehlt ein Semikolon am Ende der Klassendeklaration in Ihrer Header-Datei. Wenn das nicht der Fall ist, können Sie uns den Header zeigen? –

+0

'TwoToFourTree ' ist ein Fehler, weil 'TwoToFourTree' nicht definiert ist. Die anderen Fehler kaskadieren von diesem. –

Antwort

0

Die # include-Direktive für TwoToFourTree.h ist auskommentiert. Dies ist vermutlich die Datei, in der die TwoToFourTree-Klasse definiert ist. Versuchen Sie, diese Zeile auszukommentieren.

+0

Das ist, was ich ursprünglich getan habe, aber das gibt mir verschiedene Fehler, die sagen, "So-und-So-Funktion ist bereits definiert" für alle Funktionen der Klasse, weil in der .h-Datei habe ich die .cpp-Datei enthalten. – Robert

+0

@Robert: * "Weil ich in der .h-Datei die .cpp-Datei enthalten habe" * - Das ist normalerweise nicht das, was du willst. Header sollten Deklarationen und Kompilierungseinheiten (CPP-Dateien) für die Implementierungen bereitstellen. .cpp-Dateien sollten Header enthalten, nicht umgekehrt. – IInspectable