在这段代码中:
RationalNum operator+(const RationalNum& left, const RationalNum& right) {
RationalNum temp;
/*code here*/
return temp;
}
如果该对象在此函数退出时从堆栈中"删除",它如何返回该对象?
这是因为在销毁局部变量之前复制了返回值(如有必要(。销毁返回的对象是调用函数的职责。
返回的对象是在 return 语句的点构造的,但局部变量的销毁留到块的末尾(在返回之后(。