Prima di tutto, esistono due dialetti C++ specifici per Microsoft per .NET: il vecchio "Managed C++" (Visual Studio 2002 e 2003) e C++/CLI (Visual Studio 2005 e versioni successive).
In C++/CLI, System::String^
è un riferimento .NET a una stringa; alcuni autori chiamano questo "puntatore di tracciamento" per confrontarlo e contrastarlo con un normale puntatore C++. Come in C++, è possibile passare .NET riferimenti "di riferimento", ma invece di usare &
, è usare %
, come in:
void makeStr(System::String^ %result) {
result = gcnew System::String("abc");
}
fonte
2010-10-14 04:18:54
ho aggiunto il C++ - tag cli perché sembra che questo è ciò che sei usando qui. – configurator
Proprio come un punto di riferimento: C++/CLI è * not * C++; nonostante la somiglianza tra i nomi, i tag C++ e C++ - cli sono piuttosto vicini a mutuamente esclusivi; le domande su una (inclusa questa) spesso non hanno senso per quanto riguarda l'altra. –