我的C ++代码有问题,无法将以b为底的数字字符串转换为以n为底的数字。我的错误如下:
无法将参数'1'的'std :: __ cxx11 :: string {aka std :: __ cxx11 :: basic_string
}'转换为'char *'到'int base_to_decimal(char *,int)'>
我正在使用g ++进行编译,已经有一段时间了,所以我起初以为我知道问题出在哪里。它说方法base_to_decimal
接受两个参数:一个类型为char*
,一个类型为int
。因此,解决该问题所需要做的就是将char*
参数更改为string
,对吧?
好吧,我看了一下,该函数的代码是:
int base_to_decimal(std::string input_base, int base)
因此,这种方法应该期待string
,但是由于某种原因,当我传递string
时,它会生我的气。
如果有人可以帮助我解决这个问题,那就太好了。我正在使用g ++ 7.3.0,并在Linux Mint 19.1上运行所有这些程序。
(编辑)
主要方法
功能
表
答案 0 :(得分:0)
您已在主体的第46行上编写了一个自定义声明:
int base_to_decimal(std::string input_base, int base)
但是在定义函数的函数文件中,您具有:
#include
这就是为什么您不应该为外部函数编写内联声明,而是将声明放在头文件中的原因。以后定义函数的文件中的{{1}}确保该定义与其他文件期望的声明匹配。同样,它强制所有其他文件都尝试以实际编码的方式使用该功能。