我有一个称为 shell 脚本的可执行文件:
./lineGraph argv[1] argv[2] ... argv[9]
它创建了一个 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]);
};
我得到:
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
这里:
this->z[0]=z1;
this->z[1]=z2;
this->z[2]=z3;
我很好奇一个解决方案,以及为什么它给我一个错误的解释(我将 string[] 的一个元素设置为一个字符串,我认为这是允许的)。我可能缺少一些基本的东西,因为我的 C++ 生锈了。
提前致谢!
编辑:问题已解决。是一个偷偷摸摸的变量声明覆盖了 z[] 声明。