2010-07-23 160 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)。