У меня есть функция, которая берет две текущие переменные члена уровня класса и устанавливает их в структуру timeval, и возвращает timeval obj (по значению).
Я вижу проблему при установке члена уровня классаОбъект timeval против создания нового объекта timeval при каждом вызове get ().
Внутри класса
protected:
int time[2];
timeval tv;
// work done on setting the time array
timeval getTimeval()
{
tv.tv_sec = (time_t)time[0];
tv.tv_usec = time[1];
return tv;
}
Это не вернет правильные значения timeval.Tv.tv_sec будет перезаписан, но tv_usec останется неизменным.Однако он вернет правильные значения, когда я создаю объект timeval внутри вызова get.
timeval getTimeval()
{
timeval t;
t.tv_sec = (time_t)time[0];
t.tv_usec = time[1];
return t;
}
Есть ли какая-либо причина, по которой установка объектов timeval в переменной-члене должна отличаться от создания нового объекта и установки егозначения?