あー、違う違う。
class CMonsterData
{
int hpmax; //最大体力
}
class CMonster
{
CMonsterData *monsterdata;
int hp; //残り体力
}
こんな感じで作成する。
各個体で別々にインスタンスを作らないといけないのは分かると思う。
アクションするモンスターはデータと別に作る。
データクラスはアプリケーション実行中には絶対にデータを弄らない。
弄るとややこしくなるから。
戦闘が終わればCMonsterを綺麗さっぱりdeleteすれば分かりやすい。
自分はこんな感じで作ってる。

因みに戦闘クラスは
class CBattle
{
CMonster *monsters[敵の数];
};
という感じでポインタを持たせる。