Hello I have four files: AllOnesGA.cpp, GeneticAlgorithm.h, Population.h, Individual.h And I don't know why individual.getFitness() give me -1 and not 2 that is the last value that I give it with the method setFitness
I simplified my code
int main()
{
   GeneticAlgorithm ga(100);
   Population population = ga.initPopulation(50);  
   ga.evalPopulation(population);
   ga.isTerminationConditionMet(population);
   ...
In geneticAlgorithm
void evalPopulation(Population population)
{
    double populationFitness = 0;
    for (Individual individual : population.getIndividual())
    {
        individual.setFitness(2);       
    }
}
bool isTerminationConditionMet(Population population)
{   
    for(Individual individual :population.getIndividual())
    {
        cout<<individual.getFitness()<<endl; //this gives -1 and not 2
    }
}
and in Individual.h
class Individual{
public:
    Individual(vector<int> chromosome2)
    :chromosome(chromosome2),chromosomeLength(chromosome2.size())
    {}
    Individual(int chromosomeLength)
    :chromosomeLength(chromosomeLength)
    {
        for(int gene=0;gene<chromosomeLength;gene++)
        {
            chromosome.push_back(gene);
        }
    }
    int getChromosomeLength()
    {
        return chromosomeLength;
    }
    vector<int> getChromosome()
    {
        return chromosome;
    }
    int getGene(int offset)
    {
        return chromosome[offset];
    }
    void setFitness(double fitness)
    {
        this->fitness=fitness;
    }
    double getFitness()
    {
        return fitness;
    }
private:
    vector<int> chromosome;
    double fitness=-1.0;
    int chromosomeLength;
from Population.h
...
vector <Individual> getIndividual()
{
    return this->population;
}
...
private:
    vector <Individual> population;
But don't confuse the object population from AllOnesGA.cpp and the population object from Population.h that is a vector. Any recomendation?
 
    