123. Move Semantics

Question.4

A developer implements a move constructor for a DMA buffer:

class DMABuffer {
uint8_t* data;
int size;
public:
DMABuffer(int n) : size(n), data(new uint8_t[n]) {}
DMABuffer(DMABuffer&& other) noexcept
: data(other.data), size(other.size) {
other.data = nullptr;
other.size = 0;
}
~DMABuffer() { delete[] data; }
};

Why is other.data = nullptr essential?

Need Help? Refer to the Quick Guide below

Select Answer