-1

そのクラスのすべてのオブジェクトがその値を持つように、コマンドライン引数からクラスメンバーを割り当てる方法はありますか (デフォルトで)? 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

}
4

1 に答える 1

0

使用することをお勧めしstd::istringstreamます:

int main(int arg_count, char * * arguments)
{
  std::istringstream arg_stream(arguments[1]);
  unsigned int value;
  arg_stream >> value;
  return 0;
}
于 2015-02-10T22:26:00.670 に答える