私はJavaを知っていますが、C++についてはあまり知識がありません。https://developers.google.com/v8/get_startedで、コードのメイン関数の最初の3つのステートメントのクラスを作成しようとしています。
まず、C++でオブジェクトを作成する方法について質問します。以下のコードを参照してください。
HandleScope handle_scope;
Persistent<Context> context = Context::New();
Context::Scope context_scope(context);
C ++では、クラスの変数を宣言すると、その時点で作成されたクラスのインスタンスになると思います。Javaのように新しいキーワードを使用する必要はありません。したがって、最初のステートメントは、handle_scopeに格納されるHandleScopeのインスタンスを作成します。今、私は2番目のステートメントがどのように機能するかを理解していません。私の知る限り、=の前の部分は、変数コンテキストで参照できる新しいPersistentオブジェクトを作成します。次に、Context :: New()は新しいオブジェクトを作成し、それをコンテキストに格納しますか?ええと、私は私が間違っていることを知っています。しかし、私はそれがどのように機能するかを単に理解していませんか?
上記のC++クラスを作成しようとしています。これが私の試みです。
class MyClass {
private:
HandleScope handle_scope;
Persistent<Context> context;
Context::Scope context_scope;
public:
MyClass();
};
MyClass::MyClass()
{
context = Context::New();
context_scope = new Context::Scope(context);
}
初期化は適切に行われましたか?
編集:peachykeenへの返信(コメントで)私は次の実験をしました。
私は以下のようにテストクラスを書きました。Test {public:Test(){cout << "Test" << endl; }};
主な機能で、私はテストテストを書きました。新しいキーワードを使用せずにオブジェクトが作成されることを意味する「テスト」を出力します。