Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Oberbegriffe


FinnO - So 24.05.09 23:12
Titel: Oberbegriffe
Hi Leute,

Ich habe viele gleichartige Klassen, die alle den gleichen Vorfahr haben. Kann ich jetzt einen Typ o.ä. definieren, der Alle klassen beinhaltet?

qasi:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
type
  TFoo = class
  private
  
  public
    bla : byte;
  end;

  TFooKind=class(TFoo)
  private

  public
    blub : String;
  end;

  TBar=class(TFoo)
  private
    Strump : Boolean;
  public
  
  end;


Dass ich jetzt einen Typ o.Ä. habe, in den ich alle Klassen packen kann? Also sozusagen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  FooFamily : Array of TOberbegriff;
  Foo       : TFoo;
  Bar       : TBar;
  FooKind   : TFooKind;
begin
  FooFamily[index] := Bar;
  FooFamily[index+2]:= FooKind;
end;


Xentar - So 24.05.09 23:22

user profile iconFinnO hat folgendes geschrieben Zum zitierten Posting springen:
Dass ich jetzt einen Typ o.Ä. habe, in den ich alle Klassen packen kann? Also sozusagen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  FooFamily : Array of TOberbegriff;
  Foo       : TFoo;
  Bar       : TBar;
  FooKind   : TFooKind;
begin
  FooFamily[index] := Bar;
  FooFamily[index+2]:= FooKind;
end;


Wenn ich mich recht erinner, kann man den gemeinsamen Vorfahr als Typ nehmen, also in deinem Fall ein array of TFoo.


Yogu - So 24.05.09 23:23

user profile iconFinnO hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
 
2:
{ ... }
  FooFamily : Array of TOberbegriff;

TOberbegriff wäre in deinem Fall schlicht und einfach TFoo :D

Mist, zu spät :autsch:


FinnO - So 24.05.09 23:35

schön, wenn programmieren so einfach ist! :D