当试图理解下面的代码时,我陷入困境。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();” 当我检查cpp文件,它包含了只有一行:
String::Utf8Value::~Utf8Value() { i::DeleteArray(str_); }
这是否意味着该功能是删除char* str_
?为什么在函数名称前加上~
是否有任何理由?我可以将其重命名为其他名称而不是~Utf8Value
?
线:
const char* operator*() const { return str_; }
它有什么作用?为什么函数名称后有一个*
? 我对const
的理解是,fucntion /变量永远不会改变,但括号后的第二个const
是什么意思?行:
Utf8Value(const Utf8Value&);
它是另一种构造函数,像第一行explicit Utf8Value(Local<v8::Value> obj);
?行:
void operator=(const Utf8Value&);
我不知道这一行试图做什么。
任何人都可以帮助我吗?任何帮助将非常感激! 谢谢!
这些是关于类的基本问题。阅读一本教科书并解决其中的问题,从长远来看,对你而言,比对这些具体问题的答案更有用。 –