It seems to me that the standard definition for an overloaded assignment operator is something along these lines:
Vehicle& operator =(const Vehicle& rhs);
I don't really understand why it's typical to start off overloading the assignment operator by specifying the return type of the function as class&. void would make a lot more sense to me. is the reason for doing this so that, for example:
1 2
SomeClass a, b, sum;
cout << "this is the sum: " << sum = a+b;
would be able to display the value of sum? Hopefully this question makes sense.