非覆盖对象

时间:2019-04-05 08:17:55

标签: c++ get set

您好,我有四个文件:AllOnesGA.cpp,GeneticAlgorithm.h,Population.h,Individual.h 而且我不知道为什么personal.getFitness()给我-1而不是2,这是我使用setFitness方法赋予它的最后一个值

我简化了代码

ID

在GeneticAlgorithm中

int main()
{
   GeneticAlgorithm ga(100);
   Population population = ga.initPopulation(50);  
   ga.evalPopulation(population);
   ga.isTerminationConditionMet(population);
   ...

和个人。h

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
    }
}

来自人口。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;

但是不要混淆AllOnesGA.cpp中的对象种群和来自向量的Population.h中的种群对象。 有什么建议吗?

0 个答案:

没有答案