Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
romex
44 / 44 / 4
Регистрация: 11.04.2010
Сообщений: 223
#1

Запрещение перегрузки public методов базового класса - C++

04.11.2012, 12:24. Просмотров 521. Ответов 4
Метки нет (Все метки)

Можно ли запретить наследникам перегружать public методы базового класса? Если да то как?
C++
1
2
3
4
5
6
7
8
9
10
11
class base
{
public:
  void theOnlyWay(); // функция которая должна выполняться единственным способом и никак иначе 
}
 
class violator: public base
{
public:
  void theOnlyWay();//как запретить?
}
Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2012, 12:24     Запрещение перегрузки public методов базового класса
Посмотрите здесь:

C++ Наследование, и перегрузки методов
C++ Конструктор базового класса
Вызов перегрузки базового класса C++
C++ Функция базового класса
Вызов методов производного класса из базового C++
Вызов наследуемых методов из базового класса C++
C++ Запрещение переинициализации public-поля как члена класса
Конструктор базового класса C++
Вызов переопределенного метода из методов базового класса C++
Как скрыть из области видимости часть методов базового класса после наследования? C++
C++ Вызов методов базового и производного классов
как сделать чтобы объект производного класса сам себя добавлял в список или массив указателей базового класса? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
04.11.2012, 12:28     Запрещение перегрузки public методов базового класса #2
Никак.
Это кстати никакая не перегрузка, это сокрытие метода.
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
04.11.2012, 12:37     Запрещение перегрузки public методов базового класса #3
Такой вариант например.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
struct Base
{
   virtual void theOnlyWay() final { };
};
 
struct Der : Base
{
   void theOnlyWay();
};
http://liveworkspace.org/code/0a9d9b...0110d8a57c9602
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
04.11.2012, 12:43     Запрещение перегрузки public методов базового класса #4
А Visual C++ 10, 11 поддерживают? Если да, то круто.
Croessmah
Модератор
Эксперт CЭксперт С++
12675 / 7183 / 801
Регистрация: 27.09.2012
Сообщений: 17,712
Записей в блоге: 2
Завершенные тесты: 1
04.11.2012, 12:43     Запрещение перегрузки public методов базового класса #5
12 студия поддерживает точно.
Yandex
Объявления
04.11.2012, 12:43     Запрещение перегрузки public методов базового класса
Ответ Создать тему
Опции темы

Текущее время: 19:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru