title: Random Number In-Class Initialisation
body: <p>I am currently making a class for which I'd like one of the private members to be initialised with a random number each time the object is created. The following code causes no problem: </p>
  
  <pre><code>private:
      unsigned random = rand() % 10;
  </code></pre>
  
  <p>I would, however, like to use the C++11 random engines and distributions to do this. I would like to be able to do something along the lines of the following code, which will not compile but will give a general idea of what I'm trying to do:</p>
  
  <pre><code>private:
  unsigned random = distribution(mersenne_generator(seed));
  
  static std::random_device seed_generator;
  static unsigned seed = seed_generator(); //So that it's not a new seed each time.
  static std::mt19937 mersenne_generator;
  static std::uniform_int_distribution&lt;unsigned&gt; distribution(0, 10);
  </code></pre>
  
  <p>This code won't compile because I'm trying to define some of the static members in the class. I'm not sure where to define them, however. I could create a member function that initialises everything, but then I would have to run it in main, which I don't want to. I would like to just sort out all the random definitions in class so that when I create an object in main, it will create the random number implicitly. Any suggestions?</p>