2013-04-06 4 views
2

Имеет ли смысл иметь функцию класса-члена, скажем, f() как частную, так и статическую? , например.Функции члена класса статические и частные

class MyClass 
{ 
... 
private: 

static int foo(); 
} 

Спасибо.

привет спасибо за все ваши комментарии! Ладно, я понял. Да, вначале я начал использовать статические функции в своем классе, потому что они не были связаны с объектами моего класса - выполняли другие операции. Теперь я также понял, что они не должны быть публичными. Итак, я думаю, что оставлю их так. Я начал получать некоторые ошибки, когда удалял статическое ключевое слово (видимо, из-за того, как он использовался во всем классе, поэтому я теперь ленив, чтобы исправить их, просто сделает его приватным и оставит статическим :)).

ответ

3

Конечно, иногда. Например, служебные функции, используемые публичными статическими методами одного и того же класса.

3

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

Нет, ваш класс не имеет смысла. Поскольку MyClass не имеет других членов, ни одна компания не сможет увидеть ваш MyClass::foo.

5

Да. Например: частные статические функции-члены, используемые для инициализации или в других целях.

Смотрите эту должность для получения дополнительной информации: What is the use of private static member functions?

0

Абсолютно! Представьте себе класс, который является чисто статическим, например, классом статистических функций. Функции помощника могут быть частными и статическими.

0

конечно. Вы можете использовать его для внутренних целей вашего класса, в частных функциях, т.е.

class A{ 
    public: 
     static int i_; 
private: 
    void privatef(){hiden_i_++;} 
    static int hiden_i_; 
}; 
+0

Почему вы не объявлять/определять свои функции как свободные функции в анонимном пространстве имен в CPP файла? – Oodini