Ошибка при присвоении значения массиву. У меня есть класс, который я создал, с именем Treasury
. Я создал еще один класс под названием TradingBook
, который я хочу содержать глобальный массив Treasury
, доступ к которому можно получить из всех методов в TradingBook
. Вот мои файлы заголовков для TradingBook и казначейства:C++ Ошибка: нет соответствия для 'operator ='
class Treasury{
public:
Treasury(SBB_instrument_fields bond);
Treasury();
double yieldRate;
short periods;
};
class TradingBook
{
public:
TradingBook(const char* yieldCurvePath, const char* bondPath);
double getBenchmarkYield(short bPeriods) const;
void quickSort(int arr[], int left, int right, double index[]);
BaseBond** tradingBook;
int treasuryCount;
Treasury* yieldCurve;
int bondCount;
void runAnalytics(int i);
};
А вот мой основной код, где я получаю сообщение об ошибке:
TradingBook::TradingBook(const char* yieldCurvePath, const char* bondPath)
{
//Loading Yield Curve
// ...
yieldCurve = new Treasury[treasuryCount];
int periods[treasuryCount];
double yields[treasuryCount];
for (int i=0; i < treasuryCount; i++)
{
yieldCurve[i] = new Treasury(treasuries[i]);
//^^^^^^^^^^^^^^^^LINE WITH ERROR^^^^^^^^^^^^^^
}
}
Я получаю сообщение об ошибке:
No match for
'operator='
on the line'yieldCurve[i] = new Treasury(treasuries[i]);'
Любые советы?
Это то же самое, что вы [спросили о вчерашнем] (http://stackoverflow.com/questions/7781292/c-when-to-exactly-use-error-base-operand-of-has-non- указатель типа). Единственное различие заключается в том, что это происходит с другой переменной. Возможно, пришло время инвестировать в хорошую книгу на C++, так как ваше понимание массивов и указателей могло бы улучшить. –