Ich habe versucht, den folgenden CodeC++ substr Methode - "ungültige Verwendung von 'this' in Nicht-Mitglied-Funktion"
std::string key = "DISTRIB_DESCRIPTION=";
std::cout << "last five characters: " << key.substr(this.end()-5) << '\n';
Und die Compiler sagt
error: invalid use of ‘this’ in non-member function
std::cout << "last five characters: " << key.substr(this.end()-5) << '\n';
^
substr
ist ein „public zu kompilieren Mitgliedsfunktion "von std::string
, warum kann ich this
nicht verwenden?
Ich weiß, dass ich nur key
wieder statt this
verweisen konnte, aber mein ursprünglicher Code war
std::cout << "Description: " << line.substr(found+key.length()+1).substr(this.begin(),this.length()-1) << '\n';
In der zweiten Verwendung von substr
, die Zeichenfolge haben keinen Namen, so dass der einzige Weg, um zu verweisen es wäre this
. Ich reparierte es mit
std::cout << "Description: " << line.substr(found+key.length()+1,line.length()-found-key.length()-2) << '\n';
Aber ich bin jetzt gespannt, warum this
nicht funktionieren.
Sie müssen wirklich ein Buch über C++ lesen. – SergeyA
Ich stimme zu, diese Frage als Off-Topic zu schließen, weil OP ein Buch braucht, keine SO-Frage. – SergeyA
Ich denke nicht, dass wir Anfänger rausschmeißen sollten. OP hat verloren, zu verstehen, wo er hin muss. Ich denke, dass SO genau existiert, damit solche Antworten einen Platz haben. Die Frage wurde gemäß den Richtlinien von SO gestellt, ist auf zukünftige Fragen bezogen. Ich stimme, wir halten es offen. –