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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.10.2009, 18:32
Аватар для mak-karpov
mak-karpov mak-karpov вне форума
Активный
 
Регистрация: 18.09.2008
Сообщения: 235
Версия Delphi: 2010 и 7
Репутация: 1242
По умолчанию Create

помогите, плз.
Создал класс, обявляю конструктор
Код:
tmyclass = class
   ...
private
   ...
public
   constructor Create; override;
end;
Ошибка
Cannot override a static method
__________________
Кнопка "+" - весы в правом верхнем углу сообщения...
Ответить с цитированием
  #2  
Старый 07.10.2009, 18:44
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,036
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

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

Код:
type
  TBaseClass = class
    constructor Create; virtual;
  end;

  TMyClass = class(TBaseClass)
    constructor Create; override;
  end;

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

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


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter