无法将参数1的字符串转换为char *

时间:2019-03-01 01:54:12

标签: c++ c++11

我的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上运行所有这些程序。

(编辑)

主要方法

image

功能

image

image

1 个答案:

答案 0 :(得分:0)

您已在主体的第46行上编写了一个自定义声明:

int base_to_decimal(std::string input_base, int base)

但是在定义函数的函数文件中,您具有:

#include

这就是为什么您不应该为外部函数编写内联声明,而是将声明放在头文件中的原因。以后定义函数的文件中的{{1}}确保该定义与其他文件期望的声明匹配。同样,它强制所有其他文件都尝试以实际编码的方式使用该功能。