Dlaczego destruktor klasy Student zwalnia pamięć name, jeśli robi to destruktor klasy bazowej Human?
BTW, destruktor klasy bazowej powinien być wirtualny.
Student tmp(pers1);
(Human&)tmp = ((Human&)pers1 + (Human&)pers2);
Jakieś mało to eleganckie...