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
No answers yet.
Faça login para deixar uma resposta
Blogs
Introdução ao C# em 2025: por onde começar e como não desistir