Подтвердить что ты не робот

Частные и статические функции в С++

Есть ли какое-то преимущество в использовании функций private (возможно, также static) в классе для функций утилиты, используемых в моем классе, которые не нуждаются в доступе к данным экземпляра, используя глобальные функции static в моем .cpp файл, реализующий класс?
Первые звуки чище для меня, но второй действительно имеет больше смысла, поскольку эти функции не нужно даже упоминать в файле .h.

4b9b3361

Ответ 1

Я бы не ставил частные статические функции в заголовочный файл, если они не нужны. Они просто загрязнят файл заголовка и добавляют больше работы.

Но частные статические функции могут понадобиться, когда у вас есть метод/функция шаблона в классе и вы хотите использовать в нем эту вспомогательную функцию.

Другая причина использования частных статических функций вместо глобальных статических функций заключается в том, что они могут обращаться к частным членам класса (переменные, функции).

Ответ 2

Если данная функция относится к вашему class, тогда вы правы. Вы должны сделать их private static внутри своего тела class.

[Примечание. Если эта функция утилиты вообще не относится, вы можете подумать о ее включении в namespace или другой класс Util и сохранить ее в пределах области файла.]

Ответ 3

Просто сделайте их файло-статическими функциями. Если они не имеют никакого отношения к классу, не помещайте их туда.

Ответ 4

Если частная функция не модифицирует членов класса, она не имеет никакого преимущества перед глобальным статиком. Быть внутри или вне класса не имеет значения