c++ - 在 C++ 中覆盖 + 运算符时分配内存

标签 c++ visual-c++

我正在创建自定义对象并覆盖 + 运算符。我将返回一个相同类型的新对象。在此方法中分配内存是不好的做法吗?因为那时我将需要删除超出范围的内存。

最佳答案

是的,没有进一步的信息,这很糟糕。

通常你会:

struct X
{
     int m_i;
     X(int i) : m_i(i) {  }

     X operator+(const X& another) const
     {
         return X(m_i + another.m_i); // note, not new X(...)
     }
}

也就是说,如果您真的必须动态分配,您可以返回一个 unique_ptr。

关于c++ - 在 C++ 中覆盖 + 运算符时分配内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7577126/

相关文章:

c++ - 将 SQL 连接到 visual studio 2015 中的 c++ 项目

c++ - 如何使用 ifdef 检测是否支持 Windows DWORD_PTR 类型?

C++/QT/ARM 处理器交叉编译/编程

c++ - 使用 C++ 创建 HTML 报告

c++ - 如何在 QT 中将 Widget 放入另一个 widget 中?

c++ - 如果你有一个固定大小的数组,你需要遍历它 !n 次,使用二分查找如何改变时间复杂度?

c++ - 组织解决方案,项目和SVN

c++ - 使用 delete []p 时堆损坏;

c++ - MFC 应用程序在启动时关闭

c++ - 如何使用 clang API 解析函数指针的 typedef 以获取函数指针名称?