📄 individual.cpp
字号:
// Individual.cpp: implementation of the CIndividual class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Individual.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
int CIndividual::VaryNum = 20;
int CIndividual::ConFuncNum = 2;
CIndividual::CIndividual()
{
fitness = 0.0;
value = 0.0;
conFitness = 0.0;
feasible = 0;
XVary = new double[VaryNum];
Dev = new double[VaryNum];
for (int i=0;i<VaryNum;i++)
{
XVary[i] = 0.0;
Dev[i] = 0.0;
}
con = new double[ConFuncNum];
for (i=0;i<ConFuncNum;i++)
{
con[i] = 0.0;
}
}
CIndividual::~CIndividual()
{
delete []XVary;
delete []Dev;
delete []con;
}
CIndividual::CIndividual(const CIndividual &t)
{
//判断是否相同
if(&t == this)
{
return;
}
//赋值给this
// VaryNum=t.VaryNum;
// ConFuncNum = t.ConFuncNum;
XVary = new double[VaryNum];
Dev = new double[VaryNum];
con = new double[ConFuncNum];
for(int i = 0; i < VaryNum; i++)
{
XVary[i] = t.XVary[i];
Dev[i] = t.Dev[i];
}
for (i=0;i<ConFuncNum;i++)
{
con[i] = t.con[i];
}
value = t.value;
fitness = t.fitness;
conFitness = t.conFitness;
feasible = t.feasible;
}
CIndividual &CIndividual::operator =(const CIndividual &t)
{
//判断是否相同
if(&t == this)
{
return *this;
}
//判断是否已经分配空间,很重要,不然内存不能很好释放
/*if (XVary) delete[] XVary;
if(Dev) delete[] Dev;
if(con) delete[] con;
//赋值给this
// VaryNum = t.VaryNum;
// ConFuncNum = t.ConFuncNum;
XVary = new double[VaryNum];
Dev = new double[VaryNum];
con = new double[ConFuncNum];*/
for(int i = 0; i < VaryNum; i++)
{
XVary[i] = t.XVary[i];
Dev[i] = t.Dev[i];
}
for (i=0;i<ConFuncNum;i++)
{
con[i] = t.con[i];
}
value = t.value;
fitness = t.fitness;
conFitness = t.conFitness;
feasible = t.feasible;
return *this;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -