Работают ли модификаторы доступа для статических функций класса? - PullRequest
1 голос
/ 05 июля 2010

Я только что наткнулся на код, который имел protected функции статического класса, например:

class C {
...

    protected:
        static int fun() { ... }
};

Мне стало любопытно, могут ли функции статического класса иметь модификаторы доступа и что бы это значило?Так как они классовые глобалы, а не пре-экземпляр.

Спасибо, Бода Кидо.

Ответы [ 3 ]

1 голос
/ 05 июля 2010

Модификаторы доступа в C ++ не работают на экземпляр . Они всегда работают на класс . Так было всегда. Что делает совершенно логичным, чтобы они применялись и к статическим элементам.

Довольно распространенным заблуждением является то, что защита доступа в C ++ должна как-то работать для каждого экземпляра, что, похоже, и вдохновило ваш вопрос.

0 голосов
/ 05 июля 2010

Это означает защищенный: статические функции могут быть доступны из других функций-членов этого класса или из функций-членов производных классов.

0 голосов
/ 05 июля 2010

Он все еще служит той же цели: только статические функции могут вызывать эту статическую функцию.

...