Разница между функциями-членами и бесплатными функциями (не-членами) в C++ заключается в области видимости их определения. 12
Функции-члены определяются в области видимости класса. 1 Их можно вызывать только через переменные соответствующего типа, используя стандартную запись обращения к члену структуры. 5
Бесплатные функции определяются в области видимости пространства имён, включая неявное глобальное пространство имён. 12 Такие функции широко используются в стандартной библиотеке. 12
Таким образом, функции-члены связаны с классом, а бесплатные функции — с пространством имён.