加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C错误:’operator =’不匹配

发布时间:2020-12-16 10:30:13 所属栏目:百科 来源:网络整理
导读:在为数组赋值时遇到问题.我有一个名为Treasury的课程.我创建了另一个名为TradingBook的类,我希望它包含一个全局的Treasury数组,可以从TradingBook中的所有方法访问.这是我的TradingBook和Treasury的头文件: class Treasury{public: Treasury(SBB_instrument
在为数组赋值时遇到问题.我有一个名为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);
};

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

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]);'

有什么建议?

解决方法

这是因为yieldCurve [i]属于财政部,而新财政部(国债[i]);是指向财政部对象的指针.所以你的类型不匹配.

尝试更改此行:

yieldCurve[i] = new Treasury(treasuries[i]);

对此:

yieldCurve[i] = Treasury(treasuries[i]);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读