powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Запретить инстанцирование класса
7 сообщений из 7, страница 1 из 1
Запретить инстанцирование класса
    #39835143
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли как-то запретить инстанцирование класса или, хотя бы, получить warning от компилятора?

Код: pascal
1.
2.
3.
4.
TMyClass = class abstract
end;

LObj := TMyClass.Create;


никаких предупреждений не выдает

С уважением, Vasilisk
...
Рейтинг: 0 / 0
Запретить инстанцирование класса
    #39835152
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получилось так
Код: pascal
1.
2.
3.
4.
TMyClass = class abstract
strict protected
  procedure WarningAbstract; virtual; abstract;
end;
...
Рейтинг: 0 / 0
Запретить инстанцирование класса
    #39835157
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://docwiki.embarcadero.com/RADStudio/Rio/en/Classes_and_Objects_(Delphi)

Note: Delphi allows instantiating a class declared abstract, for backward compatibility, but this feature should not be used anymore.
...
Рейтинг: 0 / 0
Запретить инстанцирование класса
    #39835247
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Код: pascal
1.
2.
3.
4.
5.
type
   TMyClass = class
   public
      constructor Create(); virtual; abstract;
   end;
...
Рейтинг: 0 / 0
Запретить инстанцирование класса
    #39835265
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или, если класс не 1-ый в иерархии, можно генерировать exception в конструкторе. А чтобы избавиться от него в дальнейшем, это может быть вызов абстрактной процедуры из конструктора (которая потом перегрузится в потомках) или просто виртуальной процедуры с банальным raise Exception
...
Рейтинг: 0 / 0
Запретить инстанцирование класса
    #39835304
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён> можно генерировать exception в конструкторе.

Он же на уровне компилятора хочет, а не в run-time ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запретить инстанцирование класса
    #39835325
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамОн же на уровне компилятора хочет

Я только после этого комментария это заметил. Соррян.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Запретить инстанцирование класса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]