c++ - 运算符重载时局部变量发出警告,按照教程,不知道该怎么办

标签 c++ operator-overloading

我正在阅读一篇关于运算符重载的文档: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/

相关文章:

c++ - 从欧拉角到四元数

c++ - C++ 中的结构

带有构造函数的 C++ 枚举类

C++ iostream 运算符覆盖函数返回类型

c++ - 在c++中实现复数幂函数?

c++ - Const 右值编译器区别

c++ - 错误 : Iso c++ forbids comparison between pointer and integer [c++]

f# - 如何使用重载的静态运算符

c++ - 使用模板重载 + 运算符

c++ - 重载 operator<< 与命名空间