【发布时间】:2020-06-17 04:56:16
【问题描述】:
我正在尝试创建一个可以由operator= 分配的类String。但是编译器显示错误:
错误:请求从“const char [5]”转换为非标量类型“String”
谁能帮我解决它?
#include <iostream>
using namespace std;
class String
{
private:
char string[];
public:
void operator=(const char str[])
{
for (int i = 0; ; i++) {
if (str[i] == '\0') {
string[i] = str[i];
break;
} else {
string[i] = str[i];
}
}
}
friend ostream &operator<<(ostream &output, const String& str)
{
output << str.string;
return output;
}
};
int main()
{
String str1 = "test";
cout << str1 << endl;
}
【问题讨论】:
-
String str1 = "test";不是operator=,它是构造函数。您必须使用参数const char str[]添加构造函数或编写String str1; str1 = "test";
标签: c++