【发布时间】:2014-11-06 18:11:10
【问题描述】:
我可以通过命令行参数定期读取参数(例如 a 和 b )作为 c++ 代码的输入。
问:我如何在其他几个函数(不是主函数)中使用这两个参数,所以它们的作用类似于“全局”变量。
这里是一个例子,范围 a 和 b 只是主要的,而不是 func1 和 func2。如何使 func1 和 func2 的 a 和 b 也可见?感谢您的帮助!
int main (int argc , char* argv[])
{
double a=atof(argv[1]);
double b=atof(argv[2]);
return 0;
}
double func1(double x)
{
return x+a+b;
}
double func2(double x)
{
return x*x+a*b;
}
【问题讨论】:
-
使用全局变量
-
应该有更优雅的方式,我不想以常规方式使用全局变量。
-
您要么使用某种形式的全局变量,要么将它们作为函数参数传递。
-
你应该解释你的目的。有十几种方法可以满足您的要求,包括全局变量、单例、将函数包装为具有内部状态的类的方法、简单地将它们作为参数传递,使用 currying... 事实上,这个问题也是如此广泛地给出有意义的答案。
-
@Daniel std::bind 是在 c++11 中引入的。这开始看起来像X Y Problem。 OP 可能希望将尽可能多的数字传递给程序并让这两个函数使用这些数字
标签: c++ command-line-arguments