Can someone explain to me what exactly the copy constructor is used for and why its done in this manner?
In short, I would like to pass objects to other functions call-by-value but am reluctant to do so because I don't fully understand what is happening internally.