Есть ли способ назначить член класса из аргумента командной строки, чтобы все объекты этого класса имели это значение (по умолчанию)? Я хочу это по умолчанию, потому что функция-член создает новый объект в классе 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
}
Я предлагаю использовать std::istringstream
:
int main(int arg_count, char * * arguments)
{
std::istringstream arg_stream(arguments[1]);
unsigned int value;
arg_stream >> value;
return 0;
}