Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #2  
Старый 07.10.2009, 18:44
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,107
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну тебе ж компилятор английским языком пишет - нельзя перекрыть статический метод. Все дело в том, что если родитель класса не указан, то идет наследование от TObject, а у него коструктор статический. Сначала ты должен сделать его виртуальным, а потом уже в потомках можно перекрывать:

Код:
1
2
3
4
5
6
7
8
type
  TBaseClass = class
    constructor Create; virtual;
  end;
 
  TMyClass = class(TBaseClass)
    constructor Create; override;
  end;

Да, в классе TBaseClass можно, конечно, вызвать унаследованный конструктор путем указания inherited. Но это не обязательно, т.к. в TObject конструктор ПУСТОЙ.

И еще. Помните, что то, что называется в Delphi "конструктор" по сути конструктором не является, а обеспечивает только инициализацию внутренностей класса. Сам класс создается специальным кодом, который программисту недоступен.
Ответить с цитированием
 


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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:10.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025