【发布时间】:2011-11-02 02:07:55
【问题描述】:
我正在尝试为我正在为我的高中 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);
}
所以当我尝试编译它时,我得到这个错误:“In member function void room::set_desk(char *)': error: in compatible types in assignment of char to char[16]”还有这个错误: “在成员函数 char room::get_desk() 中:错误:从 char* 到 char 的无效转换”。
我需要 char 有一个 16 的数组,但是如果我从 char desk[16]; 中删除 [16],错误就消失了
【问题讨论】:
-
你为什么不用
std::string? -
将
char*分配给char[]不能这样做,您想使用strcpy/strncpy或将desk更改为指针,这将很可能是一个非常糟糕的主意,或者像 GWW 所说的那样,如果您使用 C++,请改用std::string。 -
使用
std::string。严重地。如果您坚持使用原始指针和字符数组,请不要假装您正在“学习 C++”。那不是 C++。 -
它是 C++,但我同意他应该在这里使用
std::string。