这些运算符在 Visual C++ 生成的代码片段中意味着什么?

编程


下面的代码片段中的^>^(第1行)和“%”(第6行)是什么意思:

void main(array<String^>^ args)
{
	Application::EnableVisualStyles();
	Application::SetCompatibleTextRenderingDefault(false);
	Proj03122::stanForm form;
	Application::Run(% form);
}

下面的代码片段中的“^”是什么意思:

private: System::Void btnOk_Click(System::Object^ sender, System::EventArgs^ e) {
	String^ firstname = this->tbFirstName->Text;
	String^ lastname = this->tbLastName->Text;

	this->Greeting->Text = "hello, " + firstname + " " + lastname;
}

我尝试过的:

我用谷歌搜索了它,但不幸的是,没有人谈论它。 我什至研究了一些关于C++的教程,但问题没有得到解决。

解决方案1

这就是所谓的帽子指针,它表明该资源已被垃圾收集。 您看到的是一个 Visual C++ CLI 符号。 微软称其为 对象运算符句柄 (^)[^]。 您可以将其视为智能指针的一种形式(尽管它依赖于垃圾收集思想),当运行时确定该对象不再活动时,该对象将被删除。

[Edit]我错过了你关于 % 操作员。 这是使用 C++/CLI 的引用的托管等效项。 一般来说,如果你想到 ^ 相当于 * 那么在这个世界上 % 相当于 &

解决方案2

如果您正在搜索“^>^”,那么找不到任何内容也就不足为奇了。

运算符是“^”,这意味着前面的类型在 C++ CLI 中是可垃圾回收的。

‘< >‘ 字符是 array 声明,表示数组包含的类型。 就你而言,它定义了一个 array of Strings,或(错误地)“array”。

把“^”字符放回去,你就得到了 array<String^>^,这意味着可收集字符串的可收集数组。

コメント

タイトルとURLをコピーしました