【发布时间】:2015-08-12 04:13:21
【问题描述】:
我在尝试使用来自 main 的 char** argv 时遇到问题。我的目标是使用argv[2] 传递给另一个名为Game 的类中的字符串。有人知道我如何使用argv 并将其作为字符串传递给另一个类吗?
int main(int argc, char **argv)
{
Game game(argv[2]);
game.runsecondmethod();
}
在Game.cpp:
Game::Game(std::string a)
{
write.filename = a;
}
error, no match for call to (Game)(char*&)
【问题讨论】:
-
您不能将指向 char 的指针数组作为字符串传递给某个类。
-
您能否编辑您的问题以包含您遇到问题的代码?
-
argv类型的常用写法是char* argv[]。通过这种方式,您可以轻松地看到您可以编写argv[2]来访问程序的第二个参数,然后您可以使用其构造函数之一将其转换为std::string。请注意,argv[0]存储您的程序启动时使用的名称。 -
Game game(std::string(argv[2])); -
@Err07 您显示的代码应该可以编译。你能显示错误信息的全文吗?还要检查是否在类定义中声明了构造函数 Game(std::string a)。