以下案例应该发生什么:
编译此示例时,它会输出正确的值25。这是如何工作的?当仅使用引用时,被引用的返回值是否应该被删除(从堆栈中移除),或者行为未定义?
int functionA() {
return 25;
}
void functionB(const int& ref) {
cout << ref << endl;
}
void start() {
functionB(functionA());
}
编译此示例时,它会输出正确的值25。这是如何工作的?当仅使用引用时,被引用的返回值是否应该被删除(从堆栈中移除),或者行为未定义?