romeo, Ты раньше писал программы на Паскале?
Вот я привел твой код к С стилю
main.cpp
#include <iostream>
#include <stdlib.h>
#include <ctime>
#include "Chromosome.h"
using namespace std;
double FitnessFunct(Chromosome &Chr)
{
double temp_FR=0;
return temp_FR;
}
int main()
{
int r=5, z=2;
srand(time(0));
Chromosome::SetDim(r,z);
Chromosome a;
FitnessFunct(a);
return 0;
}
Chromosome.h
#ifndef CHROMOSOME_H
#define CHROMOSOME_H
class Chromosome
{
bool **Chromos;
static int GeneQty, GeneSize;
public:
Chromosome ();
~Chromosome();
static void SetDim(int GQty, int GSize)
{
GeneQty = GQty;
GeneSize = GSize+2;
}
};
#endif // CHROMOSOME_H
Chromosome.cpp
#include "Chromosome.h"
int Chromosome::GeneQty; //добавил, чтобы однажды задавался размер хромосомы для всех ее экземпляров
int Chromosome::GeneSize; //без этого проблемы с линкером
Chromosome::Chromosome()//создание пустой хромосомы, как массива генов
{
Chromos = new bool* [GeneQty];
for (int i=0; i<GeneQty; i++)
{
Chromos[i] = new bool[GeneSize];
};
for (int l=0; l<GeneQty; l++)
for (int j=0; j<GeneSize; j++)
Chromos[l][j]= false;
}
Chromosome::~Chromosome()
{
for(int i=0; i<GeneQty; i++)
delete [] Chromos[i];
delete [] Chromos;
}
1) Экземпляры классов передаются в функцию по ссылке или по указателю на них.
2) Не лепи в хедер реализацию класса, вынеси его в отдельный файл.
3) Обязательно закрывай хедер ключами от повторного использования.
4) Очень плохая идея, позволять изменять динамически размерность массива, Изменение будет касаться сразу всех экземпляров класса. Что может привести к трудно выловимым глюкам. Для учебной лабы в принципе и так сойдет. Для проекта нужно менять логику.