我正在创建自定义对象并覆盖 + 运算符。我将返回一个相同类型的新对象。在此方法中分配内存是不好的做法吗?因为那时我将需要删除超出范围的内存。
最佳答案
是的,没有进一步的信息,这很糟糕。
通常你会:
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/