Могу ли я сделать защищенный метод приватным?
Имеется такая ситуация:
class Class1 {
protected:
virtual void setup();
};
class Class2 : public Class1 {
};
В первом классе метод setup() объявлен protected, т е его могут использовать, помимо того же класса, дочерние классы. И то, это виртуальный метод, он будет переопределен в дочернем классе. Могу ли я его во втором классе объявить private?
class Class2 : public Class1 {
private:
void setup() {
...
}
};
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
Конечно, можете. Эта функция будет недоступна ни для кого, кроме самого Class2 и его друзей.
А можете объявить ее public, и она будет доступна для вызова извне. Но только для Class2, воспользоваться виртуальностью через Class1 при этом не получится.