【发布时间】:2018-04-16 11:58:37
【问题描述】:
#include<iostream>
class ravi
{
private:
char a[10],char b[10];
public:
void setdata(char x[10],char y[10])
{
a = x; b = y;
}
void show()
{
std::cout << a << b;
}
};
int main()
{
ravi r;
r.setdata("text","copied");
r.show();
}
我正在尝试将字符串“文本”“已复制”复制到 x 和 y,但出现“从 char* 到 char 的赋值中的类型不兼容”的错误。有人能告诉我我的代码有什么问题吗?
【问题讨论】:
-
C++ 中的字符串是
std::string。您正在使用 char 数组,即 C 字符串、NUL 终止字符串等。 -
C 字符串不是这样工作的。尝试使用
std::string并避免麻烦。 -
使用
std::string a, b;代替char a[10], b[10];并将setdata更改为void setdata(const std::string& x, const std::string& y)。不要忘记#include <string>。这比使用 C 字符串要好得多。 -
你知道什么是构造函数吗?
标签: c++ arrays string class setter