You're always free to do nothing in your constructors, in particular in your default ones, but that's bad programming practice and contrary to the spirit of the language. The reason why C++ has special member functions called constructors is - surprise, surprise! - to construct the object. Which means initializing it, to use oldfashioned terminology. When an object has been constructed it should be ready to use. Don't break the unwritten laws of the language.