title: Copy Constructor, Deep Copy, Constant Reference
body: <p>Copy Constructor, Deep Copy, Constant Reference</p>
  
  <p>Q. In terms of Memory Management.</p>
  
  <p><strong>Copy constructor for a class A has the form  A(const A&amp; a)
  Why is the parameter passed by reference?
  Explain why we cannot define a constructor of the form A(A a)</strong></p>
  
  <p>Answer.
  Three reasons why we do so:</p>
  
  <ol>
  <li>Constant Reference when passing an object as parameter is MORE efficient</li>
  <li>If we pass A(A a) without const modifier, the object that is not supposed to be changed could possibly be changed by mistake</li>
  <li>We do so so that we can make Deep Copy</li>
  </ol>
  
  <p>Those three reasons are correct?</p>
  
  <p>Please let me know.
  Thanks,</p>