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

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

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

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

04.11.2012, 12:24. Просмотров 542. Ответов 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 методов базового класса
Посмотрите здесь:

Запрещение переинициализации public-поля как члена класса - C++
Здравствуйте! Предположим, у нас есть некий класс, в нем есть public-поле, которое выполняет некоторые служебные функции. Нужно...

Вызов перегрузки базового класса - C++
Начитавшись c# забыл кое-что по с++, никак теперь не могу вспомнить как вызвать перегрузку базового класса в перегрузке наследника. Есть...

Вызов наследуемых методов из базового класса - C++
Всем доброго времени суток, перейду сразу к сути. Код: class Base { protected: public: virtual void...

Вызов переопределенного метода из методов базового класса - C++
Здравствуйте, у меня есть два класса, базовый и производный. В производном классе я переопределяю два метода method1 и method2. В базовом...

Как скрыть из области видимости часть методов базового класса после наследования? - C++
Продолжая тему наследования, в которой было выяснено, что можно вернуть в область видимости часть методов, которые потерялись при...

Наследование, и перегрузки методов - C++
Вопрос: есть ли какие нибудь красивые решения данной проблемы? Рассмотрим ниже представленный код: class Test1 { public:...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
04.11.2012, 12:28     Запрещение перегрузки public методов базового класса #2
Никак.
Это кстати никакая не перегрузка, это сокрытие метода.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 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
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
04.11.2012, 12:43     Запрещение перегрузки public методов базового класса #4
А Visual C++ 10, 11 поддерживают? Если да, то круто.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2012, 12:43     Запрещение перегрузки public методов базового класса
Еще ссылки по теме:

Вызов методов базового и производного классов - C++
Народ, объясните тупому механику раннего связывания. Вывод программы, что ниже, 22. Хотя если вызывать непосредственно функцию f, будет...

Вызов метода производного класса через обращение к методу базового класса - C++
Добрый день. Изучаю основы ООП, наткнулся на проблему. Если создавать классы внутри main.cpp, то всё нормально. Если же создавать в...

Реализовать оператор= для присваивания объекта класса-потомка объекту базового класса - C++
Есть два класса A и B, причем класс B является потомком A. Как реализовать следующее: obj_A = obj_B и obj_B = obj_A? Добавлено через 9...

Поместить в динамически расширяемый массив объекты класса, производные от базового абстрактного класса - C++
Помогите пожалуйста новичку! (мне). Я хочу создать динамически расширяющийся массив указателей на базовый абстрактный класс,...


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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,051
Записей в блоге: 3
Завершенные тесты: 1
04.11.2012, 12:43     Запрещение перегрузки public методов базового класса #5
12 студия поддерживает точно.
Yandex
Объявления
04.11.2012, 12:43     Запрещение перегрузки public методов базового класса
Ответ Создать тему
Опции темы

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