Default Constructor, Copy Constructor and Destructor are very important and I understand why C++ implicitly defined them. Just think about function arguments that should be copied, local variables that should be destructed and objects that should be construct-able even if you don't say how to construct.
But why do we need the copy assignment operator implicitly defined? Is it really a must to be able to do a = b
? It is not game changing, right? Any strong reason I don't know?