To follow up on 2kaud's point:
Code:
B(B& b, int dummy) //pseudo-assignment constructor
Don't do this. Write a real, bonafide copy constructor, not a fake one.
Code:
B(const B& b)
If you implement this function, then you are implementing the copy constructor.
Regards,

Paul McKenzie