这是函数原型,成员函数: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 加载符号]
C++运算符重载实现连加
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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 !");
}解决 4无用
悬赏问题
- ¥15 电力市场出清matlab yalmip kkt 双层优化问题
- ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
- ¥20 matlab yalmip kkt 双层优化问题
- ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
- ¥88 实在没有想法,需要个思路
- ¥15 MATLAB报错输入参数太多
- ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
- ¥15 有赏,i卡绘世画不出
- ¥15 如何用stata画出文献中常见的安慰剂检验图
- ¥15 c语言链表结构体数据插入