(C++) 'std::string fil' 的声明隐藏了一个参数
(C++) declaration of 'std::string fil' shadows a parameter
我正在尝试制作自己的编译器(是),而 c++(cc 的 cpp 版本)给我一个错误提示:错误:'std::string fil' 的声明遮蔽了一个参数。
代码:
#include <iostream>
#include <cstring>
#include <string>
int compile(std::string fil)
{
std::string cmd = "cc ", fil; // error here
system(cmd);
return 0;
}
int main(int argc, char* argv[])
{
if (argc == 2) {
std::string tmp = argv[1];
compile(tmp);
}
return 0;
}
不确定你的问题是什么 - 但编译器是正确的:
<source>:7:30: error: redefinition of 'fil'
std::string cmd = "cc ", fil; // error here
^
<source>:5:25: note: previous definition is here
int compile(std::string fil)
您重新定义了参数。您应该重命名其中之一。
添加字符串
std::string cmd = "cc " + fil; // error here
我正在尝试制作自己的编译器(是),而 c++(cc 的 cpp 版本)给我一个错误提示:错误:'std::string fil' 的声明遮蔽了一个参数。
代码:
#include <iostream>
#include <cstring>
#include <string>
int compile(std::string fil)
{
std::string cmd = "cc ", fil; // error here
system(cmd);
return 0;
}
int main(int argc, char* argv[])
{
if (argc == 2) {
std::string tmp = argv[1];
compile(tmp);
}
return 0;
}
不确定你的问题是什么 - 但编译器是正确的:
<source>:7:30: error: redefinition of 'fil'
std::string cmd = "cc ", fil; // error here
^
<source>:5:25: note: previous definition is here
int compile(std::string fil)
您重新定义了参数。您应该重命名其中之一。
添加字符串
std::string cmd = "cc " + fil; // error here