【发布时间】:2013-04-01 14:35:30
【问题描述】:
我的构造函数有点问题。 在我的头文件中我声明:
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: 在构造函数中'Territory::Territory(std::string, char*, Player*, char)’: Territory.cpp:15:33: 错误: 不兼容的类型 将‘char*’分配给‘char [2]’
我已经知道char[2] <=> char*,但我不确定如何处理我的构造函数和get/setter。
【问题讨论】:
-
I already figured out that char[2] <=> char*不是真的。 -
但我认为 c++ 编译器的 char[2] 等同于 char* ?!我真的不知道如何正确地初始化这个构造函数和吸气剂......
-
数组和指针是非常不同的东西。阅读comp.lang.c FAQ 的第 6 部分;这方面的规则对于 C 和 C++ 基本相同。
标签: c++ error-handling char