C:\Users\23501\Desktop\5\QT\System_fingerprint\widget.cpp:592: error: ambiguous overload for 'operator+' (operand types are 'int' and 'QString') int sum = 0x00 + hex_max_id; ^
时间: 2023-12-20 10:41:36 浏览: 82
Automatic_Fingerprint_Authentication_System.zip_Cropping_64.m_ST
这个错误是因为您在对一个整数和一个`QString`类型的变量`hex_max_id`进行加法运算时发生了二义性。
要解决这个问题,您需要将`hex_max_id`转换为整数类型,然后再进行加法运算。您可以使用`toInt()`函数将`QString`转换为整数。
以下是一个修复错误的示例:
```cpp
QString hex_max_id = "FF";
int sum = 0x00 + hex_max_id.toInt(nullptr, 16);
```
在这个示例中,我们使用`toInt()`函数将`hex_max_id`转换为整数。第一个参数为`nullptr`表示使用默认的基数(16进制)。然后,我们将0x00和转换后的整数相加,将结果保存在`sum`变量中。
请注意,`toInt()`函数的第二个参数用于指定转换的基数,如果您的字符串不是16进制表示,请根据需要进行调整。
确保在执行加法运算之前,使用适当的方法将`hex_max_id`转换为整数类型,以避免二义性错误。
阅读全文