Pass an argument by reference in C++/CLI so re-assignment affects the caller
Probably this is not a difficult question, but I am always a little bit confused on how to treat String type as an argument in Visual C++. I have the following to functions: void function_1(String ^str_1) { str_1 = gcnew String("Test"); } void function_2() { String ^str_2 = nullptr; function_1(str_2); } After calling function_1 , str_2 is still equal to null , but what I want to achieve is that str_2 is equal to Test . So, how can I achieve that the content of str_1 is passed to function_2 ? Thanks for any advice. Use a tracking reference : void function_1(String ^%str_1) { str_1 = gcnew