Bei C++ musst du das Objekt auch angeben, auf dem die Methode ausgeführt werden soll. Der Unterschied ist lediglich in der Positionierung im Befehl.

Bei globalen Objekten und frei stehenden Funktionen braucht man das in beiden Sprachen nicht, allerdings hat man dann eine sehr starke Bindung von Funktion an eine bestimmte Instanz.
Wenn man die selbe Funktion auf eine andere Instanz ausführen möchte, muss man entweder die Funktion duplizieren oder das Objekt übergebbar machen.

Für mein Gefühl ist das der Aufwand, gleich am Anfang die Signatur der Funktion so zu gestalten, besser einkalkulierbar, als spätere Änderungen.

Für mich ist der Ansatz nur globale Objekte zu verwenden am ehesten vergleichbar mit Klassen, die nur statische Daten und statische Methoden enthalten. Und das macht man auch nur sehr selten, wenn überhaupt.

Aber Programmierung ist eben auch sehr vom persönlichen Geschmack abhängig

Ciao,
_