Fehlermeldungen pur?
-
Was muss ich verstehen, damit mein Programm funktioniert?
Ich habe eine Klasse "Library" und lasse diese mit meiner Main-Class:
#include <iostream> #include <string> #include "Library.h" using namespace std; void main() { Library::init(); cout << Library::getSourcePath() << endl; system("PAUSE"); }den Home-Path abrufen, in der init()-Methode...
Ich will alles statisch haben und so wäre meine Vostellung von "static", aber es kommen ziemlich viele Fehlermeldungen...
Hoffentlich könnt ihr mir zeigen wie ich das richtig benutzen kann und berichtige.Library.h:
#pragma once class Library { public: static string SOURCE_PATH; static void init(); static string getSourcePath(); };Library.cpp
#include "Library.h" #include <iostream> using namespace std; string Library::SOURCE_PATH = ""; void Library::init() { const char* HOME = getenv("HOME"); if (HOME) { string PATH(HOME); PATH += "\\"; SOURCE_PATH = PATH; } } string Library::getSourcePath() { return SOURCE_PATH; }und noch die Fehlermeldungen:
Warnung 5 warning C4183 : 'getSourcePath' : Rückgabetyp fehlt; Memberfunktion, die 'int' zurückgibt wird angenommen library.h 8 1 Engine
Warnung 11 warning C4183 : 'getSourcePath' : Rückgabetyp fehlt; Memberfunktion, die 'int' zurückgibt wird angenommen library.h 8 1 Engine
Fehler 2 error C4430 : Fehlender Typspezifizierer - int wird angenommen.Hinweis : "default-int" wird von C++ nicht unterstützt. library.h 6 1 Engine
Fehler 4 error C4430 : Fehlender Typspezifizierer - int wird angenommen.Hinweis : "default-int" wird von C++ nicht unterstützt. library.h 8 1 Engine
Fehler 8 error C4430 : Fehlender Typspezifizierer - int wird angenommen.Hinweis : "default-int" wird von C++ nicht unterstützt. library.h 6 1 Engine
Fehler 10 error C4430 : Fehlender Typspezifizierer - int wird angenommen.Hinweis : "default-int" wird von C++ nicht unterstützt. library.h 8 1 Engine
Fehler 14 error C3861 : "PATH" : Bezeichner wurde nicht gefunden. library.cpp 14 1 Engine
Fehler 17 error C2556 : 'std::string Library::getSourcePath(void)' : Überladene Funktion unterscheidet sich nur hinsichtlich des Rückgabetyps von 'int Library::getSourcePath(void)' library.cpp 20 1 Engine
Fehler 18 error C2371 : 'Library::getSourcePath' : Neudefinition; unterschiedliche Basistypen library.cpp 20 1 Engine
Fehler 6 error C2352 : 'Library::getSourcePath' : Unzulässiger Aufruf einer nicht statischen Memberfunktion c : main.cpp 10 1 Engine
Fehler 1 error C2146 : Syntaxfehler : Fehlendes ';' vor Bezeichner 'SOURCE_PATH' library.h 6 1 Engine
Fehler 7 error C2146 : Syntaxfehler : Fehlendes ';' vor Bezeichner 'SOURCE_PATH' library.h 6 1 Engine
Fehler 13 error C2146 : Syntaxfehler : Fehlendes ';' vor Bezeichner 'PATH' library.cpp 14 1 Engine
Fehler 3 error C2146 : Syntaxfehler : Fehlendes ';' vor Bezeichner 'getSourcePath' library.h 8 1 Engine
Fehler 9 error C2146 : Syntaxfehler : Fehlendes ';' vor Bezeichner 'getSourcePath' library.h 8 1 Engine
Fehler 15 error C2065 : 'PATH' : nichtdeklarierter Bezeichner library.cpp 15 1 Engine
Fehler 16 error C2065 : 'PATH' : nichtdeklarierter Bezeichner library.cpp 16 1 Engine
Fehler 12 error C2039 : 'SOURCE_PATH' : Ist kein Element von 'Library' library.cpp 6 1 Engine
-
Der Typ string ist in deiner library.h nicht bekannt.
<string> einbinden, string durch std::string ersetzen.