मुझे मेरे कन्स्ट्रक्टर के साथ कुछ समस्या है। मेरी हेडर फाइल में मैं घोषणा:सी ++ त्रुटि: 'char *' के असाइनमेंट में असंगत प्रकार 'char [2]
char short_name_[2];
- और अन्य चर
मेरी निर्माता में:
Territory(std::string name, char short_name[2], Player* owner, char units);
void setShortName(char* short_name);
inline const char (&getShortName() const)[2] { return short_name_; }
मेरी cpp फ़ाइल में:
Territory::Territory(std::string name, char short_name[2], Player* owner,
char units) : name_(name), short_name_(short_name),
owner_(owner), units_(units)
{ }
मेरे त्रुटि:
Territory.cpp: In constructor ‘Territory::Territory(std::string, char*, Player*, char)’: Territory.cpp:15:33: error: incompatible types in assignment of ‘char*’ to ‘char [2]’
मैं पहले से ही पता लगा कि char[2] <=> char*
लेकिन मैं कैसे मेरे निर्माता के बारे में इस संभालने के लिए और प्राप्त करने के लिए/setters यकीन नहीं है।
'मुझे पहले से ही पता चला है कि char [2] <=> char * वास्तव में नहीं। – Rapptz
लेकिन मैंने सोचा कि सी ++ कंपाइलर char [2] char * के बराबर है? मुझे वास्तव में कोई जानकारी नहीं है कि इस कन्स्ट्रक्टर और गेटर्स को गड़बड़ कैसे करें ... – vicR
Arrays और पॉइंटर्स * बहुत * अलग-अलग चीजें हैं। [Comp.lang.c FAQ] (http://www.c-faq.com/) की सेक्शन 6 पढ़ें; इस क्षेत्र में नियम अनिवार्य रूप से सी और सी ++ के लिए समान हैं। –