Ich bleibe stecken, wenn Sie versuchen, folgenden Code zu verstehen.C++ Brauchen Sie Hilfe für Class Declaration in Header
class V8_EXPORT Utf8Value {
public:
explicit Utf8Value(Local<v8::Value> obj);
~Utf8Value();
char* operator*() { return str_; }
const char* operator*() const { return str_; }
int length() const { return length_; }
private:
char* str_;
int length_;
Utf8Value(const Utf8Value&);
void operator=(const Utf8Value&);
};
Line: "~ Utf8Value();" Wenn ich die CPP-Datei überprüft, es enthält nur eine Zeile:
String::Utf8Value::~Utf8Value() { i::DeleteArray(str_); }
Bedeutet es, dass die Funktion die char* str_
zu löschen ist? Gibt es einen Grund, warum eine ~
vor dem Funktionsnamen erhalten? Kann ich es in andere Namen anstelle von ~Utf8Value
umbenennen?
Line:
const char* operator*() const { return str_; }
Was es tut? Warum gibt es einen*
nach Funktionsname? Mein Verständnis vonconst
ist, dass die Funktion/Variable wird nie ändern, aber was bedeutet die zweiteconst
nach Klammern bedeuten?Zeile:
Utf8Value(const Utf8Value&);
Ist es ein anderer Konstruktor wie die erste Zeileexplicit Utf8Value(Local<v8::Value> obj);
?Line:
void operator=(const Utf8Value&);
Ich habe keine Ahnung, was diese Linie zu tun versucht.
Kann mir jemand dabei helfen? Jede Hilfe würde sehr geschätzt werden! Danke !!
Das sind grundlegende Fragen über Klassen. Ein Lehrbuch durchzugehen und die darin enthaltenen Probleme zu bearbeiten, wird für Sie auf lange Sicht nützlicher sein, als Antworten auf diese spezifischen Fragen zu erhalten. –