2010-07-23 85 views
3

在C++中,什麼是臨時分配,什麼時候使用? 這樣的事情是否存在? 它在TA的課程筆記中提到,但我找不到任何有關它的信息...什麼是臨時分配?

+2

從http://publib.boulder.ibm.com:[臨時對象(僅限C++)](http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=/ com.ibm.xlcpp8a.doc/language/ref/cplr382.htm) – miku 2010-07-23 13:46:17

+0

我認爲這不值得使用C++標記,因爲它可以應用於幾乎所有的編譯器或語言 – 2010-07-23 13:52:11

回答

3

當人們說「臨時」時,他們經常提到rvalues。這是創建的對象,而不是綁定到變量名稱,因此不在當前語句之外。 IE:

int foo() 
{ 
    Do(Object()); 
} 

創建的對象()是一個右值,您可能會聽到它稱爲臨時值。

2

我懷疑你的TA可能是指在表達式評估過程中沒有創建名字的對象。

SomeClass x(1), y(2), z(3); 
SomeClass t = x + y + z; 

表達x + y + z調用operator+()兩次;第一個的結果是臨時分配(第二個的初始化結果爲t)。