我知道Java,但对C++知之甚少。我正在尝试为https://developers.google.com/v8/get_started代码的 main 函数中的前 3 个语句编写一个类。
首先,我对如何在 C++ 中创建对象有疑问。请参阅下面的代码。
HandleScope handle_scope;
Persistent<Context> context = Context::New();
Context::Scope context_scope(context);
我认为在 C++ 中,当您声明一个类的变量时,该类的实例是在该点创建的。您不需要像在 Java 中那样使用 new 关键字。所以第一条语句将创建一个 HandleScope 实例,该实例将存储在 handle_scope 中。现在我不明白第二个语句是如何工作的。据我所知, = 之前的部分将创建一个新的持久对象,该对象可以由变量上下文引用。那么 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(在评论中)我做了以下实验。
我写了一个测试类如下。测试 { public: Test() { cout << "测试" << endl; } };
在主函数中我写了测试测试;它输出“Test”,这意味着在不使用 new 关键字的情况下创建对象。