Fehler "C ++ erfordert einen Typspezifizierer für alle Deklarationen, während Methoden definiert werden"

9

Ich bin relativ neu in C ++ (also versuchen Sie bitte, die Antworten einfach zu halten!), und ich kann nicht verstehen, warum ich den Fehler bekomme: C++ requires a type specifier for all declarations whilst defining methods.

Ich versuche, ein einfaches Programm zu schreiben, um eine Textdatei Zeile für Zeile zu lesen, die Werte in einem Array zu speichern. Bei dem Versuch, Methoden in meiner CPP-Datei zu deklarieren, stößt ich jedoch auf ein Problem. Bitte Code unten finden.

StringList.h

%Vor%

StringList.cpp

%Vor%

Ich habe vergeblich gegoogelt, ich verstehe nicht ganz, wie ich die richtige Dokumentation für C ++ lesen soll, also bin ich ein bisschen festgefahren. Ich habe bisher 3 oder 4 (einfache) objektorientierte Programme geschrieben und ich hatte dieses Problem nie. Wenn es hilft, verwende ich Xcode, aber ich bekomme den gleichen Fehler in Eclipse.

Es scheint, dass jede Methode, ungeachtet des Rückgabetyps, des Namens, der Parameter, die in meiner Kopfdatei definiert sind, diesen Fehler gibt - jedoch ist der Konstruktor in Ordnung. Wenn PrintWords () entfernt wird, werden die Projekt-Builds einfach entfernt.

Alle Hinweise werden sehr geschätzt!

    
Lorienas 05.11.2013, 22:12
quelle

3 Antworten

16

Sie haben es als void deklariert, aber Sie haben vergessen, es in die Definition aufzunehmen. sollte sein:

void StringList::PrintWords()

    
stellarossa 05.11.2013, 22:14
quelle
3
___ answer19800112 ___

Setzen Sie PrintWords vor die Zeile, die Probleme verursacht.

Obwohl es sich überflüssig anfühlt, müssen Sie den Rückgabetyp sowohl in der Deklaration als auch in der Implementierung angeben.

    
___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ tag123class ___ Eine Vorlage zum Erstellen neuer Objekte, die die allgemeinen Zustände und Verhaltensweisen beschreibt. NICHT MIT CSS-KLASSEN VERWECHSELN. Verwenden Sie stattdessen [css]. ___ antwort19800114 ___

Ihre Memberfunktion void wird als Prototyp erstellt:

%Vor%

bedeutet, dass es %code% zurückgibt. Wenn Sie Ihre Funktion an anderer Stelle implementieren, müssen Sie den Rückgabetyp angeben, den Sie fälschlicherweise weggelassen haben:

%Vor%     
___ qstnhdr ___ Fehler "C ++ erfordert einen Typspezifizierer für alle Deklarationen, während Methoden definiert werden" ___ qstntxt ___

Ich bin relativ neu in C ++ (also versuchen Sie bitte, die Antworten einfach zu halten!), und ich kann nicht verstehen, warum ich den Fehler bekomme: %code%

Ich versuche, ein einfaches Programm zu schreiben, um eine Textdatei Zeile für Zeile zu lesen, die Werte in einem Array zu speichern. Bei dem Versuch, Methoden in meiner CPP-Datei zu deklarieren, stößt ich jedoch auf ein Problem. Bitte Code unten finden.

StringList.h

%Vor%

StringList.cpp

%Vor%

Ich habe vergeblich gegoogelt, ich verstehe nicht ganz, wie ich die richtige Dokumentation für C ++ lesen soll, also bin ich ein bisschen festgefahren. Ich habe bisher 3 oder 4 (einfache) objektorientierte Programme geschrieben und ich hatte dieses Problem nie. Wenn es hilft, verwende ich Xcode, aber ich bekomme den gleichen Fehler in Eclipse.

Es scheint, dass jede Methode, ungeachtet des Rückgabetyps, des Namens, der Parameter, die in meiner Kopfdatei definiert sind, diesen Fehler gibt - jedoch ist der Konstruktor in Ordnung. Wenn PrintWords () entfernt wird, werden die Projekt-Builds einfach entfernt.

Alle Hinweise werden sehr geschätzt!

    
___ tag123oop ___ Objektorientierte Programmierung ist ein Programmierparadigma, das "Objekte" verwendet: Datenstrukturen, die aus Datenfeldern und Methoden zusammen mit ihren Interaktionen bestehen. ___ tag123headerfiles ___ Header-Dateien werden in einigen Programmiersprachen verwendet, um Quellcode als eine einzelne Kopie zu speichern, die in mehreren Quelldateien wiederverwendet werden kann. Dieses Tag sollte für Fragen zur Verwendung von Header-Dateien verwendet werden. Ein Tag für die Programmiersprache wie C, C ++, PHP oder Ruby sollte zusammen mit diesem Tag verwendet werden, da die Verwendung der Header-Datei zwischen Programmiersprachen variieren kann. Dieses Tag wird normalerweise nicht mit der Java- oder Go-Programmierung und der Import-Anweisung verwendet. ___ answer19800120 ___

Sie haben es als %code% deklariert, aber Sie haben vergessen, es in die Definition aufzunehmen. sollte sein:

%code%

    
___
0x499602D2 05.11.2013 22:13
quelle
2

Setzen Sie void vor die Zeile, die Probleme verursacht.

Obwohl es sich überflüssig anfühlt, müssen Sie den Rückgabetyp sowohl in der Deklaration als auch in der Implementierung angeben.

    
Scott Mermelstein 05.11.2013 22:13
quelle

Tags und Links