When I read about copy constructor and copy assignment constructor, what I understood is that both gives away their properties one to another, and that both of them are decl
Test c = b is an initialization, not an assignment.
Test c = b
If you had done this:
Test c; c = b;
Then it would have called the copy assignment operator.