Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2015, 22:10   #1
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию Запрет унаследованного метода

Я правильно понимаю: Если метод не виртуальный, его ни как не удастся скрыть в наследнике.
?
Sibedir вне форума Ответить с цитированием
Старый 26.09.2015, 22:30   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Дык и статический можно перегрузить, сделав его пустым в наследнике. Или что под скрытием имеется ввиду?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.09.2015, 22:35   #3
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

Пустой мне не нужен. Мне нужно запретить обращение к методу вообще.

Речь о Exception. У своего TMyException мне нужен один Create с несколькими параметрами.
Старо как Delphi

// ------------------------------------------------------------------------------------------------------------
Всё. Вспомнил. Точнее нашел в старом проекте
Делаю так
Код:
  ESib = class (Exception)
  private
    constructor CreateFmt(const Msg: string; const Args: array of const); reintroduce;
    constructor CreateRes(Ident: NativeUInt); reintroduce;
    constructor CreateResFmt(Ident: NativeUInt; const Args: array of const); reintroduce;
    constructor CreateResHelp(Ident: NativeUInt; AHelpContext: Integer); reintroduce;
    constructor CreateResFmtHelp(Ident: NativeUInt; const Args: array of const; AHelpContext: Integer); reintroduce;
    constructor CreateHelp(const Msg: string; AHelpContext: Integer); reintroduce;
    constructor CreateFmtHelp(const Msg: string; const Args: array of const; AHelpContext: Integer); reintroduce;
  protected
  public
    function DetailMes: string; virtual;
  end;
Потом пишу в другом модуле
SibSysUtils.ESib.cre [Ctrl + Space]
Безымянный.jpg
Ага, всё ништяк
Потом пишу
SibSysUtils.ESib.CreateRes (1);
И оно компилится А мне надо чтоб ругалось: "Cannot access private symbol ESib.CreateRes", как для всех private-методов


P.S.: Аватару по любому спасибо

Последний раз редактировалось Sibedir; 26.09.2015 в 23:53.
Sibedir вне форума Ответить с цитированием
Старый 27.09.2015, 02:23   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Я правильно понимаю: Если метод не виртуальный, его ни как не удастся скрыть в наследнике.
?
Пофигу виртуальнсть.Понижение видимости метода класса не возможно по определению!
northener вне форума Ответить с цитированием
Старый 27.09.2015, 18:21   #5
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

Т.е. большего чем просто скрыть в списке IDE не получится?
Понял.
Жаль.
Хотя наверное кроме Exception это ни где и ни куда не упёрлось.

P.S.: Самое смешное, что когда прошлый раз такое выписывал, я это уже наверное понял. Так что не судите строго, если я ч/з годик другой опять про это спрошу
Sibedir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
численные метода Апрель6 Помощь студентам 4 21.03.2013 20:38
2 метода Андрей11111 Паскаль, Turbo Pascal, PascalABC.NET 3 28.05.2012 21:35
Запрет нажатия кнопки и запрет неправильного ввода данных De_Kurlzz Помощь студентам 1 15.06.2011 15:14
метода Гауса Виктория Нисова Visual C++ 2 01.04.2011 15:02
Вызов метода из метода kuzjma PHP 8 10.12.2010 02:38