C++错误:'operator ='不匹配

CHa*_*awk 3 c++ compiler-errors

在为数组赋值时遇到问题.我有一个我创建的课程Treasury.我创建了另一个类TradingBook,我希望包含一个Treasury可以从所有方法访问的全局数组TradingBook.这是我的TradingBook和Treasury的头文件:

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);
};
Run Code Online (Sandbox Code Playgroud)

这是我的主要代码,我收到错误:

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^^^^^^^^^^^^^^
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

敌不过'operator='上线'yieldCurve[i] = new Treasury(treasuries[i]);'

有什么建议?

Mys*_*ial 10

那是因为yieldCurve[i]是类型Treasury,并且new Treasury(treasuries[i]);是指向Treasury对象的指针.所以你的类型不匹配.

尝试更改此行:

yieldCurve[i] = new Treasury(treasuries[i]);
Run Code Online (Sandbox Code Playgroud)

对此:

yieldCurve[i] = Treasury(treasuries[i]);
Run Code Online (Sandbox Code Playgroud)