臨時物件的產生與運用

2021-08-08 04:12:13 字數 460 閱讀 3884

所謂的臨時物件,就是一種無名物件。它的出現如果不在程式設計師的預期之下(例如,任何 pass by value操作都會引發copy操作,於是就形成了乙個臨時物件),這往往會造成效率上的負擔,但是在有些情況下,我們會刻意製造一些臨時物件,卻又會使程式乾淨清爽。

刻意製造臨時物件的方法是,在型別名稱之後直接加上一對小括號,並可指定初值,例如shape(3,5)或int(8),其意義相當於呼叫相應的constructor且不指定物件名稱。stl最常將此應用技巧應用於仿函式與演算法的搭配上。如下所示:

最後一行便是產生「class template具現體」print的乙個臨時物件。

這個物件將被傳入for_each()之中起作用。當for_each()結束時,這個臨時物件也就結束了它的生命。

C 產生的臨時物件引用

統自動生成的臨時物件都是const的 include using namespace std class a class b b a a class b1 public b int main 將b1 const b b 的const修飾符去掉,編譯就不能通過,報錯說沒有匹配的函式,這是為什麼?分析 ...

避免產生臨時 隱式 物件

產生乙個物件,如果這個物件很大並且這個物件是在乙個迴圈裡面產生的,是特別耗資源的,因為編譯器要找到一塊合適的記憶體,如果沒有合適的還要整理磁碟碎片並合併為一塊合適的物件儲存區。因此,在程式設計中一定要小心的產生臨時物件。臨時物件在c 語言中的特徵是未出現在源 中,從堆疊中產生的未命名物件。這裡需要特...

MFC臨時物件的所產生的BUG

現象 檢視類中響應訊息時呼叫對話方塊 cdlgconfig dlg this if dlg.domodal idok 在對話方塊構造引數中呼叫 ccaptestview m pparent getparent m fourmin m pparent m fourmin m emin m pparen...