我正在阅读一篇关于运算符重载的文档:http://courses.cms.caltech.edu/cs11/material/cpp/donnie/cpp-ops.html然而,当我运行下面的代码(在实际上下文中)时,我总是收到关于结果如何是局部变量的警告。我不应该返回局部变量是有道理的,但它似乎工作得很好。有没有办法用如下代码消除警告:
const Matrix & Matrix::operator+(const Matrix &other) const
{
Matrix result(*this);
result += other;
return result;
}
加州理工学院网站上的例子是这样的,位于 link 的底部。
最佳答案
要消除警告,您需要按值返回矩阵
。
您还应该理想将其定义为自由函数,因为从语义上讲,它不需要修改调用它的对象。
关于c++ - 运算符重载时局部变量发出警告,按照教程,不知道该怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14472631/