Listing 4 Definition of class CGAPopulation and short member functions

#include "random.h"
#include "chrom.h"

#ifndef _INC_POP_
#define _INC_POP_

class CGAPopulation
{
public:
  ~CGAPopulation();
   CGAPopulation(size_t Size, size_t Length,
float MaxMutationRate);

   void CreateNextGeneration(void);
   inline float   GetBestFitness(void);
   inline size_t  GetGeneration(void);
   inline size_t  GetPopulationSize(void);
   inline CGAChromosome*  GetChromosome(size_t Idx);

private:
   CGAChromosome* GetParent();
   
   void ReplaceChromosome(CGAChromosome* Chromosome);
   void Merge(CGAChromosome* NewChromosome);
   
   size_t           m_MaxSize;
   size_t           m_CurrentSize;
   CGAChromosome**  m_Data;
   size_t           m_Generation;
   float            m_MaxMutationRate;
};

float CGAPopulation::GetBestFitness(void) {
   return m_Data[0]->GetFitness();
}

size_t CGAPopulation::GetGeneration(void) {
   return m_Generation;
}
size_t CGAPopulation::GetPopulationSize(void) {
   return m_CurrentSize;
}
CGAChromosome* CGAPopulation::GetChromosome(
   size_t Idx)
{
   return m_Data[Idx];
}
#endif
/* End of File */