Nä, nu måste jag opponera mig. Jag håller helt med om "Gör på det sättet som du tycker blir tydligast att förstå koden", men gör du verkligen det? Här kommer du givetvis att svara "ja, det gör jag" men att du tycker det är lättast att förstå när det ser ut så här tror jag beror på att du är van att göra så just så här. Men om man inte är van vid att ens kod ser ut på det här sättet, är det då det då det sättet att skriva sin kod som gör det lättast att förstå?
Börjar man programmera i C++ och inte kommer från C finns det väl ingen anledning att börja skriva variablerna i början på funktionen? Du säger ju själv att det är en fördel att kunna deklarera dem var som helst. Varför förespråkar du då att man inte skall använda sig av den finessen? Apa33 skall väl inte lära in ett gammaldags beteende?
Sedan var det det här med initieringen. En stor fördel med att inte deklarera variabler i förväg är att de aldrig befinner sig i ett tillstånd där de inte fått sitt "riktiga" värde och därför inte behöver någon tilldelning av ett dummyvärde. Om man kör den stilen och hittar en deklaration som inte initierar variabeln, då vet man att det är något speciellt men den variabeln. Till exempel att den tilldelas sitt värde från cin eller att den tilldelas indirekt genom referens eller att man exempelvis skickar dess adress till en funktion.
Om vi i TS kodsnutt väntar med att deklarera variabeln heltal tills den tilldelas ett värde, då finns det ingen anledning till att initiera den med ett värde som aldrig kommer användas och avsaknaden av initiering för variabeln decimal signalerar att det finns anledning att vara lite extra uppmärksam när det gäller den variabeln. Blir det inte lättare att förstå vad som händer i funktionen om man inte gör saker i onödan?