title: Why is my destructor called twice?
body: <p>Suppose I hace a class Student with the method:</p>
  
  <pre><code>Student Student::method(Student x)
  {
      //nothing important
      return x;
  }
  </code></pre>
  
  <p>The copy constructor is called twice, once when the object x is send as a parameter and second when x is returned from the function.</p>
  
  <p>Why <strong>and when</strong> is the destructor for class Student called twice when I call this method?
  The call is like this: a = b.method(c), where a, b and c are Student objects.</p>