配列に値を代入するときに問題が発生しました。私はTreasury
と呼ばれるクラスを作成しました。 TradingBook
という名前の別のクラスを作成しました。TradingBook
のすべてのメソッドからアクセスできるTreasury
のグローバル配列を格納したいと思います。ここに私のヘッダファイルは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++の本に投資する時が来ました。配列やポインタについての理解が向上するかもしれないからです。 –