What is temporary allocation?
In C++, what is temporary allocation and when is it used? Does such a thing even exist? It was mentione开发者_C百科d in the TA's course notes, but I couldn't find any info about it...
When people say "temporaries" they often refer to rvalues. That is objects created and not bound to a variable name, thus not living outside the current statement. IE:
int foo()
{
Do( Object() );
}
The created Object() is an rvalue which you may hear referred to as a temporary.
I suspect that your TA may have been referring to objects without a name created during the evaluation of an expression.
SomeClass x(1), y(2), z(3);
SomeClass t = x + y + z;
The expression x + y + z
invokes the operator+()
twice; the result of the first is a temporary allocation (the result of the second initializes t
).
精彩评论