用适当的代码编写技术来返回临时量

ZDNet软件频道 时间:2003-06-02 作者:ZDNet China |  我要评论()
本文关键词:cpptips
在编程时,你会经常需要创建返回临时量(也就是自动创建和销毁的对象)的函数。用适当的技术来处理这些临时量是很重要的。
本文译自Builder.com,未经许可请勿转载在编程时,你会经常需要创建返回临时量(也就是自动创建和销毁的对象)的函数。用适当的技术来处理这些临时量是很重要的。

假设你有一个函数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;
}


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134