Your code is correct, but unnecessarily complicated. This is how it normally would be done.
double largestfun (double &num1, double &num2)
{
if (num1 > num2)
return num1;
else
return num2;
}
Or yet simpler:
double largestfun (double &num1, double &num2)
{
return num1 > num2 ? num1 : num2;
}
And it has nothing to do with call by-reference. The same would work equally well with call by value.