Move Contructor

Move ctors steal or copy ownership of dynamically created resources(file descriptors, TCP sockets, threads) held by the argument

class A {
  string s;
  int n;
  public:
  A(A&& o) : s(std::move(o.s)), n(std::exchange(o.n, 0)) {}
}