Оператор ^ действует аналогично указателю в C ++ / CLI.Разница в том, что это указатель для сбора мусора.Итак:
Dog ^ mydog = gcnew Dog();
просто говорит, что мы будем заново использовать управляемую память (gcnew) и вернем управляемый указатель обратно в mydog.
Итак:
void MyFunction(Dog ^ dog)
На самом деле проходит по адресу, а не быть ссылкой, но они вроде похожи.Если вы хотите передать по ссылке в C / C ++, вы делаете что-то вроде:
void MyFunction(Dog &dog);
в объявлении функции.Я предполагаю, что это будет то же самое для C ++ / CLI, но я никогда не пробовал.Я стараюсь не использовать ссылки, так как не всегда ясно, что они есть.
РЕДАКТИРОВАТЬ: Ну, это не то же самое, это% не &, что имеет смысл, что они должны изменить это тоже.Глупый C ++ / CLI.