Problem mit <string>



  • Hi Community,
    Ja ich schon wieder tut mir leid ...

    Ich hab ein Problem und zwar mit dem Objekt "string". Ich bin grad dabei eine Menu Klasse zu schreibn wo man dynamisch Menüpunkte aufstellen kann usw.

    Ich habe 2 Konstruktormethoden, den Standart-Konstruktor und den "Überladenen"-Konstruktor...

    Beim überladenen Konstruktor wird ein **const char *** übergeben und diesen wollte ich in der Klasse im Heap (speichern)<- oder ablegen?, das Problem ist ich hab <string> eingebunden und erstellte ein String-Objekt : string a;
    dann bekomme ich aber leider folgende Compiler-Fehlerausgabe :

    1>------ Erstellen gestartet: Projekt: adressbuch, Konfiguration: Debug Win32 ------
    1>Kompilieren...
    1>adressbuch.cpp
    1>e:\vc c-c++ projects\meine_projekte\adressbuch\adressbuch\adressbuch.cpp(17) : error C2065: 'string' : undeclared identifier
    1>e:\vc c-c++ projects\meine_projekte\adressbuch\adressbuch\adressbuch.cpp(17) : error C2146: syntax error : missing ';' before identifier 'b'
    1>e:\vc c-c++ projects\meine_projekte\adressbuch\adressbuch\adressbuch.cpp(17) : error C3861: 'b': identifier not found
    1>CMenu.cpp
    1>Generating Code...
    1>Das Buildprotokoll wurde unter "file://e:\VC C-C++ Projects\meine_projekte\adressbuch\adressbuch\Debug\BuildLog.htm" gespeichert.
    1>adressbuch - 3 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
    

    Weiß allerdings nicht warum, hab schon hier im Forum nachgeguckt im Magazin und hier : http://www.cppreference.com/cppstring/string_constructors.html

    Aber es geht nich da der Compiler string ja offensichtlich nicht kennt

    hab den Code allerdings jetzt leider so geschrieben und er funktioniert auch...ist aber ziemlich umständlich 😞

    // ------------------------------------------------------------
    
    CMenu::CMenu() : itsCount(0) {
    	std::cout << "Konstruktor..." << std::endl;
    }
    
    CMenu::CMenu(const char *title) : itsCount(0) , size(0){
    
    	buffer = new char[100];
    
    	while(*title != 0) {
    		buffer[size] = *title;
    		++title;
    		++size;
    		if(*title == 0) 
    			buffer[size] = 0;
    	}
    
    	while(*buffer != 0) {
    		std::cout << *buffer;
    		++buffer;
    	}
    
    }
    
    // ------------------------------------------------------------
    

    Vllt weiß jem. von euch warum es einfach nicht funktioniert mit string?

    schönen Nachmittag noch 😃
    lg c4f



  • hast du auch

    std::string
    

    geschrieben oder nur

    string
    

    das könnte nämlich ein problem sein.



  • Hi,
    Ich schrieb nur string...

    Hab's jetzt mir std::string versucht und funktionierte, dachte imemr ich müsse std nicht verwenden da ich das auch bei keinen Beispielen die ich so fand gelesen hatte vllt , weil die using namespace std; benutzen 🙄

    Naja jetzt hab ich weider was dazu gelernt 🙂 👍

    dank dir 🙂

    lg c4f


Anmelden zum Antworten