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