なぜこれが機能しないのかを理解するために一日中費やしました.テキストファイルから情報を抽出し、値を配列としてコンストラクターに送信しています(これは正常に機能し、値を出力できます)と表示されます。) しかし、無限ループに陥らない限り、コンストラクター内に別のクラスのオブジェクトを作成することはできません。
私のメインファイル:
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::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]);
}
}
方程式クラスは、文字列が入力されたときに完全に機能しますが、なぜこれが機能したくないのかわかりません。
前もって感謝します。