In a test function we could write
int main()
{
Fraction f1(1,2);
Fraction f2(1,4);
cout << f1; // Same as operator<<(cout, f1);
cout << endl;
...
}
So for
cout << f1; // Same as operator<<(cout, f1);
cout will be passed by reference to the parameter
os
f1 will be passed by constant reference to the
parameter f in
ostream& operator<<(ostream& os, const Fraction& f);