Thursday 15 August 2013

.net - Visual Studio C++ not recognizing literal string argument as const string reference -


मेरे पास एक सी + <पूर्व> कुछ क्लास (कॉन्स्ट स्ट्रिंग और इनपुट);

मेरे पास कुछ क्लाइंट कोड है जो मुझे विश्वास है कि इस कंसट्रक्टर का उपयोग निहित रूप से करना चाहिए, जैसा कि निम्न है।

  SomeClass sc; Sc = "sstr";   

हालांकि मुझे निम्नलिखित कंपाइलर त्रुटि मिल रही है।

  // त्रुटि: कोई ऑपरेटर "=" इन ऑपरेंडों से मेल नहीं खाता, // ऑपरैंड प्रकार हैं: फ्रेक्चर = Const char [4]   

अगर मैं कुछ क्लास कन्स्ट्रक्टर को निम्न में बदलता हूं, तो कंपाइलर एरर गायब हो जाता है।

  कुछ क्लास (const char * input);   

मैं विजुअल स्टूडियो 11, और .NET 4.5 का उपयोग कर रहा हूं।

स्पष्ट रूप से शाब्दिक वर्ण सरणी संकलक द्वारा एक स्ट्रिंग के रूप में नहीं देखा जा रहा है।

क्या यह अपेक्षित व्यवहार है? क्या ऐसा कुछ है जो मुझे याद आ रहा है?

आदर्श रूप में, और मैं क्या उम्मीद करता हूं, यह है कि कंपाइलर जानता है कि एक स्ट्रिंग भी एक चरित्र सरणी हो सकती है, लेकिन मुझे यकीन नहीं है।

मदद करने की बहुत सराहना की जाएगी।

आप ऐसा करने की कोशिश कर रहे हैं

  कुछ क्लास स्क। // कॉल एस सी डीफॉल्ट कन्स्ट्रक्टर sc = "sstr"; // कॉल SomeClass :: operator =   

इसके बजाय इसे करने की कोशिश करें

  SomeClass sc ("sstr"); // कॉल SomeClass :: SomeClass (कॉन्स्ट स्ट्रिंग और इनपुट)    

No comments:

Post a Comment