?? 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 + -