ООП. Создание (переопределение) классов

_andrews_
Дата: 05.12.2007 12:51:47
У меня проблема с ООП
Вроде и литература под рукой, но не пойму никак
Нужно создать класс TChartCustom на основе TChart и еще 2 дочерних
В общем:
Type
  TChartCustom = class(TChart)
  public
    constructor Create;
  end;
  
  TChartTime = class(TChartCustom)
    public
      constructor Create;
  end;

constructor TChartCustom.Create;
begin
  inherited Create(Self);
  //Some Do
end;

constructor TChartTime.Create;
begin
  inherited Create;
  //Some Do
end;
Такая запись не канает.
Нужно же использовать переопределение...
не могу разобраться с этими
override, virtual, overload
Читаю-и не понимаю
Нет стоящего примерчика, чтобы разобраться
Поможете?*
_varvar_
Дата: 05.12.2007 13:01:20
type
  TYourChartCustom = class(TCustomChart)
  public
    Constructor Create(AOwner: TComponent); override;
  end;
  
  TYourChartTime = class(TYourChartCustom)
  public
    Constructor Create(AOwner: TComponent); override;
  end;

constructor TYourChartCustom.Create;
begin
  inherited Create(Self);
  //Some Do
end;

constructor TYourChartTime.Create;
begin
  inherited Create;
  //Some Do
end;
Страдалецъ
Дата: 05.12.2007 13:04:10
Если попростому то,
overload - это когда надо на процедуру/функцию с одним именем навесить разную обработку. Компилятор тогда по количеству и типу параметров генерит нужный вызов.
procedure Write(Value: Integer); overload;
procedure Write(Value: String); overload;
procedure Write(Value: String; Format: String); overload;
Блин остальное долго расписывать.Может кто неполенится
_andrews_
Дата: 05.12.2007 13:10:33
Stack overflow при попытке создания дочернего Chart'a

type
  TChartCustom = class(TDBChart)
  public
    constructor Create(AOwner: TComponent); override;
  end;

  TChartTime = class(TChartCustom)
  public
    constructor Create(AOwner: TComponent); override;
  end;
implementation

{ TChartCustom }

constructor TChartCustom.Create;
begin
  inherited Create(Self);
  //Some DO
end;

{ TChartTime }

constructor TChartTime.Create;
begin
  inherited Create(Self);// ЗДЕСЬ!!!!!!
  //Some Do
end;
_varvar_
Дата: 05.12.2007 13:37:39
тьфу, блин, "копи-пасте"... только сейчас заметил)))

constructor TYourChartCustom.Create(AOwner: TComponent);
begin
inherited Create(AOwner); // а не Self
.....
end;
_varvar_
Дата: 05.12.2007 13:39:44
вот короче
type
  TYourChartCustom = class(TCustomChart)
  public
    Constructor Create(AOwner: TComponent); override;
  end;
  
  TYourChartTime = class(TYourChartCustom)
  public
    Constructor Create(AOwner: TComponent); override;
  end;

constructor TYourChartCustom.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  //Some Do
end;

constructor TYourChartTime.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  // или вообще просто inherited;
end;
_andrews_
Дата: 05.12.2007 13:54:58
Спасибо!
то, что надо!
буду разбираться!