次のコードを理解しようとすると動かなくなります。C++でヘッダ宣言のクラス宣言が必要
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&);
};
ライン: "〜Utf8Value();"
String::Utf8Value::~Utf8Value() { i::DeleteArray(str_); }
それは機能がchar* str_
を削除することであることを意味しない:私はcppのファイルをチェックすると 、それだけで1行が含まれて?関数名の前に~
がある理由はありますか? ~Utf8Value
の代わりに他の名前に名前を変更できますか?
行:
const char* operator*() const { return str_; }
どうしますか?関数名の後に*
があるのはなぜですか?const
の私の理解では、関数/変数は決して変更されませんが、角括弧の後ろにある2番目のconst
は何を意味しますか?行:
Utf8Value(const Utf8Value&);
最初の行のような別のコンストラクタですか?explicit Utf8Value(Local<v8::Value> obj);
?行:
void operator=(const Utf8Value&);
この行が何をしようとしているのかわかりません。
誰でもこの手伝いできますか?どんな助けでも大歓迎です! ありがとうございます!
これらはクラスに関する基本的な質問です。教科書を通し、その中の問題に取り組むことは、これらの特定の質問に答えを出すよりも、長期的にはあなたにとってより有用になります。 –