Je suis coincé lorsque j'essaie de comprendre le code suivant.C++ Besoin d'aide pour la déclaration de classe dans l'en-tête
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&);
};
ligne: "~ Utf8Value();" Quand j'ai vérifié le fichier cpp, il ne contient qu'une seule ligne:
String::Utf8Value::~Utf8Value() { i::DeleteArray(str_); }
Est-ce que cela signifie que la fonction est de supprimer le char* str_
? Y a-t-il une raison pour laquelle vous avez obtenu un ~
avant le nom de la fonction? Puis-je le renommer en d'autres noms au lieu de ~Utf8Value
?
Ligne:
const char* operator*() const { return str_; }
Que faut-il faire? Pourquoi existe-t-il un*
après le nom de la fonction? Ma compréhension deconst
est que le fucntion/variable ne changera jamais, mais que signifie le deuxièmeconst
après parenthèses?Ligne:
Utf8Value(const Utf8Value&);
Est-ce un autre constructeur comme la première ligneexplicit Utf8Value(Local<v8::Value> obj);
?Ligne:
void operator=(const Utf8Value&);
Je n'ai aucune idée de ce que la ligne essaie de faire.
Quelqu'un peut-il m'aider avec ceci? Toute aide serait très appréciée! Merci!
Ce sont des questions basiques sur les classes. Passer à travers un manuel et travailler sur les problèmes qu'il contient vous sera plus utile à long terme que d'obtenir des réponses à ces questions spécifiques. –