En primer lugar, existen realmente dos dialectos C++ específicos de Microsoft para .NET: el anterior "Managed C++" (Visual Studio 2002 y 2003) y C++/CLI (Visual Studio 2005 y posterior).
En C++/CLI, System::String^
es una referencia .NET a una cadena; algunos autores lo llaman un "puntero de seguimiento" para compararlo y contrastarlo con un puntero C++ normal. Al igual que en C++, puede pasar .NET referencias "de referencia", pero en lugar de utilizar &
, que utilice %
, como en:
void makeStr(System::String^ %result) {
result = gcnew System::String("abc");
}
que añade el C++ - etiqueta cli porque parece que eso es lo que eres usando aquí. – configurator
Solo como punto de referencia: C++/CLI es * no * C++; a pesar de la similitud en los nombres, las etiquetas C++ y C++ - cli son bastante parecidas a mutuamente excluyentes; las preguntas sobre una (incluida esta) a menudo no tienen sentido con respecto a la otra. –