call of overloaded `pow(int, int)' is ambiguous;

本文解答了在使用cmath库中的pow()函数时遇到的错误:调用重载函数时出现歧义。提供了可能的原因及解决方案,包括确保参数类型的正确转换。

问题:

我在程序中添加了头文件#include <cmath>;

但调用函数pow()后,程序报错:error: call of overloaded `pow(int, int)' is ambiguous;
就算是最简单的调用都报错;
 
 

回答:cmath里面对于Pow函数只有

这些重载。

你得把第一个参数转换成以上所需要的类型。不同编译器要求不一样,可能是你编译器要求比较严格,我用codeblocks,像你那样用是不会报错的。

D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In member function 'void INT::normalize()': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 27 50 [错误] no matching function for call to 'INT::abs(__gnu_cxx::__alloc_traits<std::allocator<int&gt;, int&gt;::value_type&)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 366 13 [说明] candidate: 'INT INT::abs() const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 366 13 [说明] candidate expects 0 arguments, 1 provided D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In member function 'INT INT::operator-() const': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 121 28 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 9 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 9 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 134 36 [说明] initializing argument 1 of 'bool INT::operator!=(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In member function 'INT INT::operator/(const INT&amp;) const': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 230 30 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 9 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 9 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 126 36 [说明] initializing argument 1 of 'bool INT::operator==(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 231 50 [错误] call of overloaded 'INT(int)' is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 9 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 108 9 [说明] candidate: 'INT::INT(const string&)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 9 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 13 7 [说明] candidate: 'INT::INT(const INT&amp;)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 13 7 [说明] candidate: 'INT::INT(INT&amp;&)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In member function 'INT INT::operator>>(int) const': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 283 36 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 9 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 9 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 126 36 [说明] initializing argument 1 of 'bool INT::operator==(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 286 47 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 9 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 9 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 134 36 [说明] initializing argument 1 of 'bool INT::operator!=(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In member function 'std::string INT::to_binary_string() const': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 374 30 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 9 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 9 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 126 36 [说明] initializing argument 1 of 'bool INT::operator==(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 378 29 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 9 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 9 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 134 36 [说明] initializing argument 1 of 'bool INT::operator!=(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 379 41 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 9 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 9 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 126 36 [说明] initializing argument 1 of 'bool INT::operator==(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In static member function 'static INT INT::from_binary_string(const string&)': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 387 26 [错误] call of overloaded 'INT(int)' is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 9 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 108 9 [说明] candidate: 'INT::INT(const string&)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 9 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 13 7 [说明] candidate: 'INT::INT(const INT&amp;)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 13 7 [说明] candidate: 'INT::INT(INT&amp;&)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In member function 'std::string INT::to_string() const': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 399 30 [错误] aggregate 'std::stringstream ss' has incomplete type and cannot be defined D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In function 'INT pow(INT, INT)': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 423 27 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 9 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 9 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 136 35 [说明] initializing argument 1 of 'bool INT::operator<(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 423 37 [错误] conversion from 'int&#39; to 'INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 9 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 9 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 425 30 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 9 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 9 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 152 35 [说明] initializing argument 1 of 'bool INT::operator>(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In function 'INT gcd(INT, INT)': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 439 21 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 9 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 9 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 134 36 [说明] initializing argument 1 of 'bool INT::operator!=(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In function 'INT factorial(const INT&amp;)': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 452 17 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 9 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 9 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 136 35 [说明] initializing argument 1 of 'bool INT::operator<(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 453 18 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 9 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 9 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 126 36 [说明] initializing argument 1 of 'bool INT::operator==(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In member function 'void INT::normalize()': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 27 22 [错误] no matching function for call to 'INT::abs(__gnu_cxx::__alloc_traits<std::allocator<int&gt;, int&gt;::value_type&)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 366 6 [说明] candidate: 'INT INT::abs() const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 366 6 [说明] candidate expects 0 arguments, 1 provided D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In member function 'INT INT::operator-() const': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 121 14 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 2 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 2 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 134 29 [说明] initializing argument 1 of 'bool INT::operator!=(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In member function 'INT INT::operator/(const INT&amp;) const': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 230 16 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 2 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 2 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 126 29 [说明] initializing argument 1 of 'bool INT::operator==(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 231 36 [错误] call of overloaded 'INT(int)' is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 2 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 108 2 [说明] candidate: 'INT::INT(const string&)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 2 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 13 7 [说明] candidate: 'INT::INT(const INT&amp;)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 13 7 [说明] candidate: 'INT::INT(INT&amp;&)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In member function 'INT INT::operator>>(int) const': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 283 15 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 2 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 2 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 126 29 [说明] initializing argument 1 of 'bool INT::operator==(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 286 26 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 2 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 2 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 134 29 [说明] initializing argument 1 of 'bool INT::operator!=(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In member function 'std::string INT::to_binary_string() const': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 374 16 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 2 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 2 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 126 29 [说明] initializing argument 1 of 'bool INT::operator==(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 378 15 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 2 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 2 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 134 29 [说明] initializing argument 1 of 'bool INT::operator!=(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 379 20 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 2 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 2 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 126 29 [说明] initializing argument 1 of 'bool INT::operator==(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In static member function 'static INT INT::from_binary_string(const string&)': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 387 12 [错误] call of overloaded 'INT(int)' is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 2 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 108 2 [说明] candidate: 'INT::INT(const string&)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 2 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 13 7 [说明] candidate: 'INT::INT(const INT&amp;)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 13 7 [说明] candidate: 'INT::INT(INT&amp;&)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In member function 'std::string INT::to_string() const': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 399 16 [错误] aggregate 'std::stringstream ss' has incomplete type and cannot be defined D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In function 'INT pow(INT, INT)': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 423 13 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 2 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 2 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 136 28 [说明] initializing argument 1 of 'bool INT::operator<(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 423 23 [错误] conversion from 'int&#39; to 'INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 2 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 2 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 425 16 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 2 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 2 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 152 28 [说明] initializing argument 1 of 'bool INT::operator>(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In function 'INT gcd(INT, INT)': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 439 14 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 2 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 2 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 134 29 [说明] initializing argument 1 of 'bool INT::operator!=(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 0 -1 In function 'INT factorial(const INT&amp;)': D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 452 10 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 2 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 2 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 136 28 [说明] initializing argument 1 of 'bool INT::operator<(const INT&amp;) const' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 453 11 [错误] conversion from 'int&#39; to 'const INT&#39; is ambiguous D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 112 2 [说明] candidate: 'INT::INT(const char*)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 90 2 [说明] candidate: 'INT::INT(long long int)' D:/HuaweiMoveData/Users/94197/Documents/untitled1.cpp 126 29 [说明] initializing argument 1 of 'bool INT::operator==(const INT&amp;) const' 、
最新发布
07-14
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值