假设你有一个函数f(),它将返回一个临时对象。该对象现场创建和使用。你可以把它当作参数传递给另外一个函数,也可以用它来做某些事情,然后,使用它的语句结束时,它也就销毁了。例如:
#include <iostream>
struct CTest
{
CTest()
{ std::cout << "test constructed"
<< std::endl; }
~CTest()
{ std::cout << "test destructed" <<
std::endl; }
void do_something() const
{ std::cout << "I've tested something"
<< std::endl; }
};
//返回临时量
CTest make_test()
{
return CTest();
}
// 使用Ctest对象
void use_test( const CTest & test)
{
test.do_something();
}
int main(int argc, char* argv[])
{
// make_test()返回一个临时量,该临时量即被创建
// 该临时量传递到“use_test”函数
//该临时量被销毁
use_test( make_test());
//这里没有任何临时量了
return 0;
}