Dlaczego mój destruktor został wywołany dwukrotnie?

Załóżmy, że hace klasę Student metodą:

Student Student::method(Student x)
{
    //nothing important
    return x;
}

Konstruktor kopii jest wywoływany dwa razy, raz, gdy obiekt x jest wysyłany jako parametr, a drugi, gdy x jest zwracany z funkcji.

Czemui kiedy czy destruktor dla klasy Student nazywa się dwukrotnie, gdy nazywam tę metodę? Wywołanie jest następujące: a = b.metod (c), gdzie a, b i c są obiektami Studenta.

questionAnswers(3)

yourAnswerToTheQuestion