C++的函数中,如果返回值是一个对象,那么理论上它不可避免的会调用对象的构造函数和析构函数,从而导致一定的效率损耗.如下函数所示: A test() { A a; return a; } 在test函数里,生成了一个A的临时对象,之后将它作为返回值返回,在生成a的过程中会调用constructor,离开函数的时候会调用该临时对象的destructor. C++的编译器采用了一种称为返回值优化(RVO)的技术,假设说这么写代码: A test() { return A(); } A a=test(…