Привет всем, что я наткнулся на этот кусок кода сегодня, и я смущен относительно того, что именно происходит и более конкретно в каком порядке:
Код:
#include <iostream>
bool foo(double & m)
{
m = 1.0;
return true;
}
int main()
{
double test = 0.0;
std::cout << "Value of test is : \t" << test << "\tReturn value of function is : " << foo(test) << "\tValue of test : " << test << std::endl;
return 0;
}
Вывод:
Value of test is : 1 Return value of function is : 1 Value of test : 0
Увидев это, я бы предположил, что перед вызовом функции печатается правильный аргумент. Так что это право на левую оценку? Во время отладки, хотя кажется, что функция вызывается перед выходом, что я и ожидал. Я использую Win7 и MSVS 2010. Любая помощь приветствуется!