Funkcja Time::Sum tak na prawdę nic nie robi. Tworzy nowy obiekt klasy Time, ale go nie zwraca. Po wykonaniu instrukcji
Time time1(1,1);
Time time2(2,2);
Time time3 = time1.Sum(time2);
Zmienna time3 będzie przechowywać jakieś śmieciowe wartości lub program się wykrzaczy.
Ponadto w zmiennej lokalnej sum w funkcji Sum sumujesz tylko minuty.