Tôi có một chút vấn đề với hàm tạo của mình. Trong tập tin tiêu đề của tôi, tôi tuyên bố:Lỗi C++: Các loại không tương thích khi gán ‘char *’ cho ‘char [2]
char short_name_[2];
- và các biến khác
Trong constructor của tôi:
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_; }
Trong tập tin cpp của tôi:
Territory::Territory(std::string name, char short_name[2], Player* owner,
char units) : name_(name), short_name_(short_name),
owner_(owner), units_(units)
{ }
lỗi của tôi:
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]’
Tôi đã tìm ra rằng char[2] <=> char*
nhưng tôi không chắc chắn làm thế nào để xử lý này về constructor của tôi và nhận/setters.
'Tôi đã tìm ra rằng char [2] <=> char *' không thực sự. – Rapptz
nhưng tôi nghĩ cho trình biên dịch C++ là char [2] tương đương với char *?! tôi thực sự không có ý tưởng làm thế nào để init constructor này và getters corretly ... – vicR
Mảng và con trỏ là * rất * những thứ khác nhau. Đọc phần 6 của [comp.lang.c FAQ] (http://www.c-faq.com/); các quy tắc trong lĩnh vực này về cơ bản là giống nhau cho C và C++. –