如何在C ++中从命令行参数中分配成员变量?

时间:2015-02-10 22:14:34

标签: c++ global-variables command-line-arguments member-variables

有没有办法从命令行参数中分配一个类成员,以便该类的所有对象都具有该值(默认情况下)?我想要它默认,因为成员函数在Foo类中创建一个新对象,我不想让Var成为函数参数。我想尽可能避免全局变量。我希望我的代码能够执行下面的代码,但不使用全局变量。

foo.h中:

#include <string>
#include <iostream>

extern int Var;

class Foo{
    public:
         int var;
         Foo();

};

Foo.cpp中:

#include "Foo.h"
Foo::Foo(){
    var = Var;
}

main.cpp中:

#include "Foo.h"

int Var; // global variable
using namespace std;

int main(int argc, char *argv[]){
    Var = stoi(argv[1]);
    Foo foo;
    cout << foo.var << endl; // should print the command-line argument

}

1 个答案:

答案 0 :(得分:0)

我建议使用std::istringstream

int main(int arg_count, char * * arguments)
{
  std::istringstream arg_stream(arguments[1]);
  unsigned int value;
  arg_stream >> value;
  return 0;
}