Как правильно вызвать конструктор базового класса из унаследованного класса в Delphi Phrism? - PullRequest
5 голосов
/ 30 августа 2011

У меня есть два класса - базовый класс и унаследованный класс следующим образом.

Базовый класс:

TAlarm = class(System.Object)
private:
protected:
public:
    constructor (tag:TTagname);
end;

унаследованный класс:

  TAlarmMsg = class(TAlarm)
  public
    constructor (aname:string);
    method GetAlarmMsg:string; override;
    method SendMsg(msg:string);
  end;

конструкторы:

constructor TAlarm(tag:TTagname);
begin
  Tagname := tag;
end;

constructor TAlarmMsg(aname:string);
begin
  inherited TAlarm(aname); <========Here is my problem.
  name := aname.ToCharArray;
end;

Независимо от того, что или как я вызываю или играю с унаследованным конструктором, я получаю следующие сообщения об ошибках при компиляцииисходный файл.

- Самостоятельный доступ невозможен до завершения унаследованного конструктора.И / ИЛИ - Невозможно найти подходящий конструктор в базовом классе, поэтому требуется ручной вызов метода Наследование

Кстати, я потратил полдня на изучение этой проблемы и нашел в Интернете полезную информацию.Пока ничего не помогает.Я даже нашел веб-страницу, которая прямо говорит о конструкторах в Википедии Delphi Prism (http://prismwiki.embarcadero.com/en/Constructors).

Итак, как бы вы сделали это правильно?Спасибо,

1 Ответ

4 голосов
/ 30 августа 2011

унаследованный конструктор (aName) должен это сделать.

...