2 westlife zhuang westlife_zhuang 于 2016.04.04 21:55 提问

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个回答

CSDNXIAON
CSDNXIAON   2016.04.04 22:02

【c++】实现运算符的重载
C++运算符重载的实现
C++ 运算符重载
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

cxsmarkchan
cxsmarkchan   2016.04.04 22:22

似乎是工程或者IDE的问题,新建一个工程写这些代码试试

westlife_zhuang
westlife_zhuang 试了,还是一样唉。
一年多之前 回复
wzxq123
wzxq123   Rxr 2016.04.04 22:30

一般要实现连续使用某个操作符都需要返回相应的引用类型。

westlife_zhuang
westlife_zhuang 如果返回值是引用,就出现这个警告:warning C4172: 返回局部变量或临时变量的地址: temp
一年多之前 回复
oiu1010110
oiu1010110   2016.04.05 00:04

应该是系统的问题 你看看你的系统里有这个usrtbased.dll文件没 从网上下一个装上再运行试试看呢

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!