Когда вы передаете по значению. например, bool func(double var)
, вы получаете локальный var
, который исчезнет, если вы выйдете из области видимости. Представьте себе что-то вроде этого:
Функция
bool func(double var) {
double res = var * 2;
return true;
}
называется так:
double someVar = 5;
bool success = func(someVar);
Вы можете вычислить с помощью var
все, что хотите, при возврате из func
локальная копия var
исчезнет, а у вас останется someVar == 5
.
Теперь, когда вы передаете по ссылке (т. Е. bool func(double &var)
), все, что вы делаете с переданной var
, будет сделано с исходной. Это означает, что при возвращении с func
у вас останется someVar == 10
. success
будет верным в любом случае.
Надеюсь, это поможет