westlife_zhuang 2016-04-04 13:55 采纳率: 33.3%
浏览 3041

C++运算符重载实现连加

这是函数原型,成员函数:Matrix operator+(const Matrix&)
这是函数体
Matrix Matrix::operator+(const Matrix& m)
{
Matrix temp;
for (int i = 0;i < 2;i++)
{
for (int j = 0;j < 2;j++)
{
temp.p[i][j] = p[i][j] + m.p[i][j];
}
}
return temp;
}
运行时出现错误,无法实现连加,可是没有报错或警告的消息,这是怎么回事?
调试时出现这个:
[下面的框架可能不正确和/或缺失,没有为 ucrtbased.dll 加载符号]

  • 写回答

4条回答

  • 小怪物爱吹牛 2018-11-17 06:47
    关注

    要实现连加需要将操作符形参申明为const引用类型。如下
    //操作符申明为友元并重载
    friend matrix operator+(const matrix &M, const matrix &N) {
    if (M.num==N.num)
    {
    matrix temp = M;
    for (std::size_t i = 0; i != M.num.first; i++)
    for (std::size_t j = 0; j != M.num.second; j++)
    temp.data[i][j] += N.data[i][j];
    return temp;
    }
    else
    throw std::range_error("Matrix do not match !");
    }

    评论

报告相同问题?

悬赏问题

  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集