我花了一整天的时间试图弄清楚为什么这不起作用,我从文本文件中提取信息并将值作为数组发送到构造函数(工作正常,我可以打印出值它们会显示出来。)但是如果不进入无限循环,我就无法在构造函数中创建另一个类的对象。
我的主要文件:
int main(int argc, char** argv)
{
string line;
ifstream myfile ("test1.txt");
string rows [15];
int index = 0;
string tempForSize[5];
double * sizeArray = new double[5];
int firstIntOccur =0;
string * arrForEquations = new string[12];
int equationCount = 0;
if (myfile.is_open()) {
while ( myfile.good() ) {
getline (myfile,line);
rows[index] =line;
index++;
}
myfile.close();
}
else
cout << "Unable to open file" << endl;
for(int i=0; i <12;i++) {
if(rows[i].find("EQUATIONS: ")!=string::npos) {
i++;
i++;
while(i <index) {
arrForEquations[equationCount]=rows[i];
equationCount++;
i++;
}
break;
}
if(rows[i].find(':')!=string::npos) {
firstIntOccur =rows[i].find(':');
tempForSize[i].assign(rows[i],firstIntOccur+2,rows[i].size());
}
}
for(int i =0;i <5; i++) {
sizeArray[i] = atof(tempForSize[i].c_str());
}
try
{
string * equations = arrForEquations;
GeneticAlgorithm a(sizeArray, equations, equationCount);
}
catch(string s)
{
cout << s << endl;
}
return 0;
}
遗传算法类的构造函数:
GeneticAlgorithm::GeneticAlgorithm(double *& arr, string * sArr, int size) {
Equation ** e = new Equation*[size];
for(int i = 0; i < size; i++) {
e[i] = new Equation(sArr[i]);
}
}
当输入字符串时,方程类可以完美地工作,我只是不知道为什么它不想工作。
提前致谢。