我有一个名为shell脚本的可执行文件:
./lineGraph argv[1] argv[2] ... argv[9]
Run Code Online (Sandbox Code Playgroud)
它创建了类lineGraph的一个实例(这里代码非常简化):
class lineGraph
{
string z[3];
lineGraph(string lumi, string label, char *typeArg, string volume, string axisStyle, string theLine, string z1, string z2, string z3)
{
this->z[0]=z1;
this->z[1]=z2;
this->z[2]=z3;
}
}
public int main(int argc, char* argv[])
{
lineGraph *graphData = new lineGraph(argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9]);
};
Run Code Online (Sandbox Code Playgroud)
我得到:
lineGraph.cc:251: error: cannot convert ‘std::string’ to ‘char’ in assignment
lineGraph.cc:252: error: cannot convert ‘std::string’ to ‘char’ in assignment
lineGraph.cc:253: error: cannot convert ‘std::string’ to ‘char’ in assignment
Run Code Online (Sandbox Code Playgroud)
这里:
this->z[0]=z1;
this->z[1]=z2;
this->z[2]=z3;
Run Code Online (Sandbox Code Playgroud)
我很好奇一个解决方案,也解释了为什么它给了我一个错误(我将一个字符串[]的元素设置为一个字符串,我认为这是允许的.因为我的C++生锈了,所以我可能缺少一些基本的东西.
提前致谢!
编辑:问题已解决.是一个偷偷摸摸的变量声明覆盖了z []声明.
代码中有几个错误:
;课堂申报后遗漏.argv没有宣布,你应该写int main(int argc, char *argv[]).但在纠正这些错误后,代码编译得很好.没有任何cannot convert std::string to char错误.
可能你正在尝试编译不同的东西,而不是你向我们展示的代码.
| 归档时间: |
|
| 查看次数: |
2270 次 |
| 最近记录: |