[Error] no match for 'operator=' (operand types are 'HCNode' and 'char**')是什么错误?
时间: 2023-05-30 10:04:17 浏览: 397
这是因为在程序中有一个将字符数组赋值给 HCNode 类型的变量的操作,但是 HCNode 类型没有定义接受字符数组类型的赋值操作符(operator=),因此编译器报错。您需要检查程序中的 HCNode 类型变量赋值操作是否正确,并确保 HCNode 类型定义了正确的赋值操作符。
相关问题
[Error] no match for 'operator=' (operand types are 'HCNode' and 'char**')是什么错误?怎么改正?
这个错误提示是因为在程序中试图将一个char**类型的值赋值给了一个HCNode类型的变量,而这两种类型之间并没有定义赋值运算符(operator=)。
要改正这个错误,需要确定应该将哪些值赋给HCNode类型的变量。如果这个变量需要一个char**类型的值,可以使用一个适当的构造函数或者转换函数来完成类型转换。具体实现方法需要根据代码逻辑和语义来决定。
10 6 E:\360MoveData\Users\lenovo\Desktop\我?腸++程序\未??3.cpp [Error] no match for 'operator==' (operand types are 'std::string' {aka 'std::__cxx11::basic_string<char>'} and 'char')
这个错误是因为你在代码中使用了字符串和字符进行比较,但是字符串和字符不能直接比较。你需要使用字符串的比较函数来比较字符串。在C++中,可以使用`strcmp()`函数来比较两个字符串是否相等,例如:
```c++
#include <string>
#include <cstring>
using namespace std;
int main() {
string str = "hello";
char c = 'h';
if (str.compare(string(1, c)) == 0) {
// 字符串和字符相等
}
else {
// 字符串和字符不相等
}
return 0;
}
```
注意,在比较之前需要将字符转换为字符串。上面的代码中,使用了`string(1, c)`将字符`c`转换为长度为1的字符串,然后使用`compare()`函数进行比较。如果字符串相等,`compare()`函数返回0,如果字符串不相等,`compare()`函数返回非0值。
阅读全文