unsigned int minutes;
unsigned int seconds;
public:
Time() : hours(0), minutes(0), seconds(0) {}
Time(unsigned int h, unsigned int m, unsigned int s) : hours(h), minutes(m), seconds(s) {}
~Time() {
}
Time &operator+(const Time &other) const {
Time *newObject = new Time;
long totalsecs =
(hours * 3600) + (minutes * 60) + seconds + (other.hours * 3600) + (other.minutes * 60) + other.seconds;
if(totalsecs / (60 * 60) > 23){
newObject->hours = totalsecs / (60 * 60) - 24;
} else
newObject->hours = totalsecs / (60 * 60);
newObject->minutes = totalsecs % (60 * 60) / 60;
newObject->seconds = totalsecs % (60 * 60) % 60;
return *newObject;
}
void display() const {
cout << hours << ":" << minutes << ":" << seconds << endl;
}
};
Думаю, что в этом классе проблема с памятью, newObject будет создаваться и потом никак не очищаться при переопределении объекта типа obj3 = obj1 + obj2;
Как решить проблему?
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
pastebin.com
Обсуждают сегодня