Единственный код, которому разрешено использовать protected
члены класса (статические или нет), являются явными друзьями рассматриваемого класса и классов, производных от рассматриваемого класса (и, конечно, членами самого класса). Следовательно, если «вы» хотите получить доступ к этому значению, то «вы» должны быть либо другом этого класса, либо членом класса, производного от него.
Классы защиты (public
, protected
и private
) существуют для обеспечения защиты данных. Объявляя член protected
, автор этого класса делает полужесткое заявление о том, какой код должен быть разрешен для этой части памяти. Если вы не производный класс или получили разрешение с явной спецификацией friend
, то вам не разрешено его трогать.
Вы не должны наследоваться от класса исключительно для получения доступа к protected
статическому члену. Вы должны наследовать от класса, только если это имеет смысл делать, основываясь на том, что пытается сделать ваш производный класс.