我有一個函數,它接受兩個當前類級別的成員變量並將它們設置爲timeval結構,並返回timeval obj(按值)。C++設置timeval成員
我在設置類級別成員timeval對象vs在每個get()調用中創建新的timeval對象時看到一個問題。
類
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保持不變。但是,當我在get調用中創建timeval對象時,它將返回正確的值。
timeval getTimeval()
{
timeval t;
t.tv_sec = (time_t)time[0];
t.tv_usec = time[1];
return t;
}
是否有任何理由在成員變量上設置timeval對象應該不同於創建新對象並設置它的值?
tv_usec不需要類型轉換嗎? – rplusg 2010-11-29 11:30:16
這兩種情況應該沒有區別。問題在於代碼的其餘部分。當你在`tv.tv_usec = time [1]設置斷點時,`你看到tv.tv_usec沒有改變嗎? – Dialecticus 2010-11-29 11:38:44