我正在尝试为我高中的C++课程制作一个游戏类。我的所有设置函数都无法正常工作。我将发布一个专门展示其中一个问题的示例(我对它们所有都遇到同样的错误)。以下是问题:
#include <iostream>
using namespace std;
class room {
public:
void set_desk(char *);
char get_desk();
private:
char desk[16];
}
int main {
room room1;
room1.set_desk("a desk");
cout << room1.get_desk();
return(0);
}
void room::set_desk(char *a){
room::desk = *a;
}
char room::get_desk(){
return(room::desk);
}
当我尝试编译这段代码时,出现了这个错误:"在成员函数 void room::set_desk(char *) 中:error: 不兼容类型,无法将 char 赋值给 char[16]",还有这个错误:"在成员函数 char room::get_desk() 中:error: 从 char* 到 char 的无效转换"。
我需要 char 变量拥有一个长度为 16 的数组,但如果我从
char desk[16];
中删除 [16],这些错误就会消失。
std::string
? - GWWchar*
赋值给char[]
是不可行的,你需要使用strcpy
/strncpy
或者将你的desk
改为指针,但这很可能是一个非常糟糕的想法。或者像 GWW 所说,如果你在使用 C++,可以考虑切换到使用std::string
。 - wklstd::string
。认真点,如果你坚持用原始指针和字符数组胡乱搞,就别假装自己在“学习C ++”。那不是C ++。 - Kerrek SBstd::string
。 - Matthew Flaschen