У меня есть функция, которая принимает две текущие переменные уровня класса и устанавливает их в структуру timeval и возвращает значение timeval obj (по значению).C++ set timeval members
Я вижу проблему при установке элемента 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;
}
Это не будет возвращать правильные значения формата: первый формат. 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;
}
Есть ли какой-либо причине установки на объекты формата: первый формат переменной-члена должны отличаться от создания нового объекта и установки его значения?
Тип-литой, требуемый для tv_usec? – rplusg 2010-11-29 11:30:16
Между этими двумя случаями не должно быть разницы. Проблема заключается в остальной части кода. Когда вы устанавливаете точку останова на `tv.tv_usec = time [1];` вы видите, что tv.tv_usec не изменен? – Dialecticus 2010-11-29 11:38:44