Fehler: Der Ausdruck muss ein änderbarer lvalue sein.
-
Hallo,
ich würde gerne ein Objekt erstellen welcher im Kontruktor einen Namen aufnimmt.
Dieser Name soll als String anschließend durch "isalnum" geprüft werden ob er nur alphanumerische Zeichen enthält.Das ist der Kontruktor:
Node::Node(std::string id){ if (check(id) = true) { m_id = id; } }
Das ist die Funktion welche den Namen prüft:
#ifndef FUNCTION_H #define FUNCTION_H #include <string> #include <iostream> #include <cctype> bool check(std::string stringcheck) { for (int i = 0; i < stringcheck.length(); i++) { if (isalnum(stringcheck[i]) == false) { std::cout << "Kein alphanumerische Zeichen" << std::endl; return (-1); } } return true; } #endif // !FUNCTION_H
Warum wird im Konstruktor die Funktion rot makiert und mit der Fehlermeldung "Der Ausdruck muss ein änderbarer lvalue sein." gekennzeichnet?
-
Weil ein Vergeich mit == geht.
-
Warum liefert bei dir eine bool-Funktion -1? So ist immer alles korrekt!
-
Super danke für deine schnelle Antwort!
Wenn im String nicht nur aus alphanumerische Zeichen besteht, dann soll das Programm mit "-1" beendet werden. Als nächstes möchte ich versuchen die Fehlermeldung mit einer Exception zu werfen.Danke dir!!!
-
Return beendet die Funktion ( in dem Fall mit true ). Wenn du dort tatsächlich das Programm beenden willst, musst du exit verwenden.