Они имеют в виду разные вещи. В контексте class
, static
означает, что методам не требуется, чтобы объект действовал, поэтому они больше похожи на свободные функции. В контексте namespace
это означает, что функции имеют внутреннюю связь, поэтому являются уникальными для единицы перевода, в которой они определены.
Кроме того, члены class
по умолчанию являются закрытыми, поэтому, как написано, ваши функции класса могут вызываться только друг от друга. Вам нужно добавить спецификатор доступа public:
или сделать class
a struct
, чтобы изменить это.
Если вам нужна группа свободных функций и вам не нужны объекты классов, то, вероятно, более целесообразно определить их как не-1012 * функции в пространстве имен. Если они определены в строке в заголовочном файле, то их обычно необходимо объявить inline
. Это подразумевается, если они определены в class
.