में मेरे पास अधिभारित विधियों वाला सी # क्लास लाइब्रेरी है, और एक विधि में एक रेफ पैरामीटर है और दूसरे का मान पैरामीटर है। मैं इन तरीकों को सी # में कॉल कर सकता हूं, लेकिन मैं इसे सी ++/सीएलआई में सही नहीं कर सकता। ऐसा लगता है कि कंपाइलर इन दो तरीकों को अलग नहीं कर सकता है।अधिभारित सी # फ़ंक्शंस को कैसे कॉल करें, केवल एक ही अंतर पैरामीटर द्वारा पारित किया गया है या सी ++/क्ली
यहाँ मेरी सी # कोड
namespace test {
public class test {
public static void foo(int i)
{
i++;
}
public static void foo(ref int i)
{
i++;
}
}
}
और मेरे C++/CLI कोड
int main(array<System::String ^> ^args)
{
int i=0;
test::test::foo(i); //error C2668: ambiguous call to overloaded function
test::test::foo(%i); //error C3071: operator '%' can only be applied to an instance of a ref class or a value-type
int %r=i;
test::test::foo(r); //error C2668: ambiguous call to overloaded function
Console::WriteLine(i);
return 0;
}
मैं सी में पता है ++ मैं अधिभार कार्यों की घोषणा नहीं कर सकते हैं जहां समारोह हस्ताक्षर में फर्क सिर्फ इतना है कि है कोई ऑब्जेक्ट लेता है और दूसरा ऑब्जेक्ट का संदर्भ लेता है, लेकिन सी # मैं कर सकता हूं।
क्या यह सुविधा सी # में समर्थित है लेकिन सी ++/सीएलआई में नहीं है? क्या कोई कामकाज है?
क्या आपके पास इसकी आवश्यकता होने पर एक सच्चे असली उदाहरण है? – Jodrell
क्या आपने चर के बजाए पॉइंटर के साथ इसे आजमाया था? –
क्या यह भी निर्माण करता है? अगर यह भी चिंतित है! +1 –