को प्रभावित करता है शायद यह एक कठिन सवाल नहीं है, लेकिन मैं स्ट्रिंग प्रकार को विज़ुअल सी ++ में तर्क के रूप में कैसे इलाज करता हूं, इस पर थोड़ा उलझन में हूं। मैं कार्यों के लिए निम्न है:सी ++/सीएलआई में संदर्भ द्वारा एक तर्क पारित करें, इसलिए पुनः असाइनमेंट कॉलर
void function_1(String ^str_1)
{
str_1 = gcnew String("Test");
}
void function_2()
{
String ^str_2 = nullptr;
function_1(str_2);
}
function_1
कॉल करने के बाद, str_2
अभी भी null
के बराबर है, लेकिन मैं क्या हासिल करना चाहते हैं कि str_2
Test
के बराबर है। तो, मैं कैसे प्राप्त कर सकता हूं कि str_1
की सामग्री को function_2
पर भेज दिया गया है?
किसी भी सलाह के लिए धन्यवाद।
धन्यवाद! आज कुछ सीख लिया! – stefangachter
@Agnel मुझे नहीं पता कि आपने क्यों कहा था कि जब आप एक पॉइंटर पास करते हैं तो संदर्भ की केवल स्थानीय प्रतियां बदल दी जाती हैं। सबसे पहले एक सूचक एक संदर्भ नहीं है। दूसरा, यदि आप सी ++ में पॉइंटर पास करते हैं और डेटा को संशोधित करते हैं, तो आप डेटा की स्थानीय प्रति संशोधित नहीं कर रहे हैं। क्या मैं अर्थशास्त्र में मिश्रित हो गया था या क्या? – Ian
@Ian, मेरा मतलब यह था कि यदि आप एक सूचक पास करते हैं और पॉइंटर चर के मूल्य को बदलते हैं (जैसा कि यह इंगित करता है कि डेटा के मूल्य के विपरीत), केवल स्थानीय सूचक चर का मान बदल जाएगा। और हां, यदि आप डेटा को पॉइंटर पॉइंट संशोधित करते हैं, तो डेटा स्वयं संशोधित होता है और स्थानीय प्रति नहीं। डेटा की कोई स्थानीय प्रति मौजूद नहीं है; सूचक की एक स्थानीय प्रति मौजूद है। –