我的構造函數有點問題。 在我的頭文件我宣佈:C++錯誤:將'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*
,但我不知道如何處理這對我的構造函數和獲取/ setter方法。
'我已經想出了char [2] <=> char *'不是真的。 – Rapptz 2013-04-09 23:23:45
但我認爲C++編譯器是char [2]相當於char *?!我真的不知道如何初始化這個構造函數和獲取者... – vicR 2013-04-09 23:30:32
數組和指針是*非常*不同的東西。閱讀[comp.lang.c常見問題](http://www.c-faq.com/)的第6部分; C和C++在這方面的規則基本相同。 – 2013-04-09 23:37:21