«Внешние» методы - это методы, которые работают, но не являются членами класса. В Java это просто означает (статические) методы других классов, которые принимают первый класс в качестве аргумента. В C ++ вам нужно знать о свободных функциях. В отличие от Java, в C ++ методы могут существовать вне классов. int main()
самый известный. STL также упакован с бесплатными функциями. Просто загляните в одиночестве.
Для Java сайт, на который вы ссылаетесь, советует «сторонние методы - обходной путь» и предлагает «Ввести локальное расширение» в качестве альтернативного рефакторинга. В C ++ свободные функции не обходные пути. Это означает, что существует гораздо меньшее давление для введения локальных расширений.
Кроме того, в C ++ функции не являются виртуальными по умолчанию, и объекты часто передаются по значению. Это означает, что метод «введения локальных расширений» часто терпит неудачу.
Я надеюсь, что это покажет фундаментальную проблему с вашим подходом: вы принимаете методы рефакторинга для Java, которые обращаются к определенным слабым местам Java, и пытаетесь преобразовать их в C ++, который имеет довольно другой набор слабых мест. Даже там, где это работает, это часто не нужно.