There are rules, fairly firm guidelines, regarding what we do with the default special member functions.
https://en.wikipedia.org/wiki/Rule_of_three_(C%2B%2B_programming)
The numbers are three, five, and zero, because the default constructor is often treated differently but not always ...
... so the rule of six is mentioned sometimes too:
The rule of three says if you define one of destructor, assignment operator, or copy operator, you should define all three.
Why?
If you need to define one it’s unlikely everything will be consistent with the others by default.
See
http://en.cppreference.com/w/cpp/language/rule_of_three
The rule of five is the C++11 extension of the rule of three to take into account the need to typically define the move constructor and move assignment too.
These are sometimes referred to as copy control and, if we don’t provide them, the compiler does.
Why seven? Include a non-default constructor and the default constructor.
If you didn’t need moving for whatever reason the rule of three applies.
The rule of zero is for the case where you don’t need copying or moving.