有没有办法从命令行参数中分配一个类成员,以便该类的所有对象都具有该值(默认情况下)?我想要它默认,因为成员函数在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
}
答案 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;
}