Как назначить переменную-член из аргумента командной строки в C ++?

Есть ли способ назначить член класса из аргумента командной строки, чтобы все объекты этого класса имели это значение (по умолчанию)? Я хочу это по умолчанию, потому что функция-член создает новый объект в классе 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

Решение

Я предлагаю использовать std::istringstream:

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

Другие решения


По вопросам рекламы [email protected]