¿Qué significan estos operadores en el fragmento de código generado por Visual C++?

programación


¿Qué significan ^>^ (línea 1) y “%” (línea 6) en el siguiente fragmento de código?

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

¿Qué significa ‘^’ en el siguiente fragmento de código?

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;
}

Lo que he probado:

Lo busqué en Google pero desafortunadamente nadie habló de ello. Incluso estudié algunos tutoriales sobre C++, pero las preguntas no fueron abordadas.

Solución 1

Esto se conoce como puntero de sombrero e indica que este recurso se recolecta como basura. Lo que estás viendo es un símbolo CLI de Visual C++. Microsoft llama a esto el Operador de identificador de objeto (^)[^]. Puede pensar en esto como una forma de puntero inteligente (aunque se basa en una mentalidad de recolección de basura), donde el objeto se elimina cuando el tiempo de ejecución decide que el objeto ya no está activo.

[Edit]Me perdí tu pregunta sobre el % operador. Este es el equivalente administrado de una referencia que utiliza C++/CLI. En general, si piensas en ^ siendo equivalente a * en este mundo entonces % es el equivalente de &.

Solución 2

Si está buscando ‘^>^’, no sorprende que no encuentre nada.

El operador es ‘^’, lo que significa que el tipo anterior se puede recolectar como basura en la CLI de C++.

Los caracteres ‘< >‘ son parte del array declaración, que denota un tipo que contiene la matriz. En su caso, se trata de definir un array of Strings, o (incorrectamente), ‘matriz‘.

Vuelva a colocar los caracteres ‘^’ y tendrá array<String^>^lo que significa una matriz coleccionable de cadenas coleccionables.

コメント

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