Как получилось, что fractionAry[i] = new Fraction(num1, denom1)
работает и сохраняет созданную дробь в индекс i
.Ошибка: нет оператора = соответствует этим операндам
Но когда я делаю fractionAry[i][j] = new Fraction(num1, denom1)
, компилятор дает мне ошибку, говоря, что оператор не соответствует этим операндам?
Если я хотел бы сохранить дробь в j
, как бы я это сделал? Я не совсем уверен, как хранить фракцию в массиве массивов фракций ...
Вот мой код, спасибо за помощь заблаговременно.
void createArray() {
Fraction** fractionAry;
int aryCount;
int arySize;
int i, j;
int num1, denom1;
cout << "\nHow many arrays of fractions (treating these as array of arrays of fractions? ";
cin >> aryCount;
if (aryCount > 0) {
fractionAry = new Fraction*[aryCount];
for (i = 0; i < aryCount; i++) {
cout << "\nCreating array index # " << i
<< "\n How many fractions(s)? ";
cin >> arySize;
if (arySize > 0) {
fractionAry[i] = new Fraction[arySize + 1];
fractionAry[i][0] = arySize;
for (j = 1; j < arySize + 1; j++) {
cout << "\n Enter the numerator: ";
cin >> num1;
cout << " Enter the denominator: ";
cin >> denom1;
while (denom1 == 0) {
cout << "\nCan't set to 0! Enter a new denominator: ";
cin >> denom1;
}
fractionAry[i] = new Fraction(num1, denom1);
// fractionAry[i][j] = new Fraction(num1, denom1); I would like to do this instead
}
cout << "\nFor array index #" << i << endl;
for (j = 0; j < arySize + 1; j++) {
cout << " Element index #" << j << " : " << *(*(fractionAry + i) + j) << endl;
}
}
}
}
}