- copy constructor
- copy assignment operator
- deconstructor
- default constructor
the compiler will automatically generate for every class
/* Summary of disallowing functions
*
* 1. c++ 11: f() = delete
* 2. c++ 03: declare the function to be private, and not define it
* 3. private destructor: stay out of stack
*/
Foo(const Foo& rhs) = delete