In the C++ programming language, special member functions[1] are functions which the compiler will automatically generate if they are used, but not declared explicitly by the programmer.
The automatically generated special member functions are: In these cases the compiler generated versions of these functions perform a memberwise operation.
For example, the compiler generated destructor will destroy each sub-object (base class or member) of the object.
The compiler generated functions will be public, non-virtual[3] and the copy constructor and assignment operators will receive const& parameters (and not be of the alternative legal forms).
Here are the signatures of the special member functions: In C++03 before the introduction of move semantics (in C++11) the special member functions[5] were: