Вы можете объявить обычные статические функции в C ++, как и в C, в любом модуле перевода. Но они будут обычными статическими функциями, а не методами класса.
Методы класса не ограничены одной единицей перевода. Большой класс нередко сталкивается с множеством методов, разбитых на две или более разных единиц перевода. Частные методы из одного модуля перевода, конечно, могут вызывать другие частные методы в порядке перевода модулей. Следовательно, их связь должна быть внешней.
Это все, что дает вам стандартный C ++. Помимо этого, могут быть специфические для реализации расширения, которые можно использовать, если переносимость не является проблемой. Например, gcc предлагает атрибут видимости . «внутренняя» видимость подразумевает статическую связь. Я не проверял это, но атрибут отмечен как применимый к коду C ++, а не только к C.