title: classes with a lot of members
body: <p>I am attempting to create a D&amp;D encounter simulator.
  I have therefore created a class called &quot;Actor&quot; to emulate the behaviour of the players and the monsters. The problem is that while the class for the moment only have 3 member variable, as the simulation gets more accurate it will become necessary to add more member variables to best simulate the stats of the monsters and player e.g. strength, dexterity etc. (possibly more than 10 member variables)
  This leads to a constructor with a lot of parameters so the question then becomes; Is there a better way to organize this data, since it can all vary with every instance of the actor class?</p>
  <p>Right now the user is required to type in all the states by hand, though I have plans to make file reading for monsters accessible later since monster stats only vary with monster type (dragon, skeleton etc.)</p>
  <p>Note: These stats are very important and used to calculate the outcome of every action the &quot;Actor&quot; class can take in the encounter.</p>
  <p><strong>EDIT:</strong>
  A lot of people suggest using inheritance, but the fact is that (Monsters and Players) never have different stats, the monsters like the players are controlled by a player (The Game Master) This is a tabletop game and the simulator is supposed to help the game master balance encounter's ahead of a real game.</p>
  <p><strong>Actor.h</strong></p>
  <pre><code>#ifndef actor_h_
  #define actor_h_
  
  #include &quot;dice.h&quot;
  
  class Actor
  {
    private:
      signed int hp;
      signed int ac; // Armor Class
      signed int dmg;
      
    public:
      Actor( signed int hp, int ac, int dmg);
      ~Actor();
  
      signed int getHP( void );
      signed int getAC( void );
      signed int getDmg( void );
      void setHP(signed int newHP);
      void setAC(signed int newAC);
      void setDmg(signed int newDmg);
  
      void attack(Actor* target);
  };
  #endif
  </code></pre>
  <p><strong>Actor Constructor</strong></p>
  <pre><code>Actor::Actor(signed int hp, signed int ac, signed int dmg)
  {
    this-&gt;hp = hp;
    this-&gt;ac = ac;
    this-&gt;dmg = dmg;
  }
  Actor::~Actor(){}
  </code></pre>