Avatar ·

O que é semântica de movimento (move semantics) em C++11 e como funciona?

Olá a todos! Comecei a estudar C++11 e constantemente me deparo com o termo "move semantics", mas não consigo entender completamente o que é e para que serve. Li vários artigos, mas em todos os lugares os exemplos são meio abstratos. Tenho o seguinte código. Suponha que estou escrevendo uma classe que gerencia um array dinâmico: ```cpp #include #include class MyArray { public: int* data; size_t size; MyArray(size_t s) : size(s) { data = new int[size]; std::cout << "Constructor called\n"; } MyArray(const MyArray& other) : size(other.size) { data = new int[size]; std::memcpy(data, other.data, size * sizeof(int)); std::cout << "Copy constructor called\n"; } MyArray& operator=(const MyArray& other) { if (this != &other) { delete[] data; size = other.size; data = new int[size]; std::memcpy(data, other.data, size * sizeof(int)); s