Руководство по стилю Google C++ для членов базового класса
Руководство по стилю Google C++ в разделе о наследовании гласит:
Ограничьте использование защищенных функций-членов, к которым может потребоваться доступ из подклассов. Обратите внимание, что члены данных должны быть частными.
Рассмотрим теперь следующий случай:
class A {
private:
double m;
// ...
}
class B : public A {
// ...
}
Я предполагаю, что правильный подход заключается в том, что класс A реализует функции получения / установки для m, так что класс B может получить к нему доступ?
Я действительно не понимаю, почему это правило было выбрано вместо использования protected
для членов данных, а также. Может кто-нибудь объяснить?