int & Function(int &x)
innebär att funktionen returnerar en int-referens. En referens fungerar ungefär som en pekare fast med undantaget att den är säker. Den pekar alltså alltid till en variabel. Genom referensen kan du ändra orginalvärdet på variabeln.
int &var = Function(...);
var = 5; //Ändrar värdet på variabeln som Function returnerar till 5
Referenser kan automatiskt konverteras till vanliga variabler så därför fungerar även detta.
int var = Function(...);
Det vore ohyggligt korkat att göra en inkrementor icke-modifierande, men just den här funktionen är inte const. Titta på skillnaden mellan dessa två rader, den andra gör att du inte kan modifiera någon av klassens medlemsvariabler.
Jag håller faktiskt på med att ta mig igenom en c++ bok(teach yourselt C++ in 21days) men jag tycker den förklarar lite dåligt så jag behövde lite förtydliganden.