Effective C++ item 6: Explicitly disallow the use of compiler-generated functions you do not want.

We all know from previous posts that compiler will generate constructors, destructors and assignment operator for you. What if you don’t need or you want to prevent compiler to generate them for you? The ways is to declare the corresponding member functions private and give no implementations. Here we will have a uncopyable class to demonstrate how to implement this.