Ошибки, баги, вопросы - страница 1677
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
private не при чём, у вас же эта функция как final объявлена.
Так в наследуемом классе нет же private-методов родителя. Поэтому и переопределения, вроде, как и не должно быть.
Здрасьте-приехали.
public-наследование же. Из потомка private-методы родителя не доступны, если верить компилятору.
Закрытый виртуальный метод базового класса нельзя вызвать из наследника, но переопределить - можно, что вы и пытаетесь сделать.
Закрытый виртуальный метод базового класса нельзя вызвать из наследника, но можно переопределить.
Попробую подобный пример составить, чтобы лучше понять.
Прикольно получилось
наверное, такая конструкция может где-то пригодиться.
public-наследование же. Из потомка private-методы родителя не доступны, если верить компилятору.
С помощью этого можно сделать аналог ключевого слова final, прямой запрет дальнейшего наследования.
Да вот как показывает пример выше, нельзя аналог сделать. Нужно final прописывать даже для private-методов.
Странно. для public наследования максимальный доступ должен быть protected а не private.
А в примере функция точно перегружается?
Странно. для public наследования максимальный доступ должен быть protected а не private.
А в примере функция точно перегружается?
Точно. Сам вот только узнал.
Если в примере сделать
BASE() {Func();} // вместо void Init() {Func();} Вызов Base.Init() - убрать конечно.то можно проверить себя после запуска, правильно ли понимаете, что должно происходить.