问一个函数按值返回和按引用返回的性能问题和解决办法
第一种按值返回:
Type fun()
{
Type t;
.....
return t; // 返回时会构造一个新的Type并返回此新对象,并调用t的析构函数
}
第二种按引用返回:
Type& fun()
{
Type t;
.....
return t; // 返回T的地址,但还是会调用t的析构函数
}
第一种结果虽然正确,可是浪费了一个对象的构造和析构过程,
第二种虽然返回了地址,可是对象已经被释放了,也就是结果不对
现在我想问,我采用第二种方式来写项目中的大部分的函数,那怎么确保每次调用这个函数时,
T的构造函数会被调用, 但不会调用t的析构函数.