Einzelnen Beitrag anzeigen

Kudle

Registriert seit: 31. Okt 2010
14 Beiträge
 
#7

AW: Inkompatible Typen 'TItem' und '...' ?

  Alt 14. Nov 2012, 15:28
Zitat:
Zeichenanzahl != Zeichenzaehler.
Entschuldige, das lag noch daran, dass ich diese Methoden aus einer anderen Unit kopiert habe.

Zitat:
Wenn du schon wegen TZeichenzahl Probleme hast, warum wird dessen deklaration nicht gezeigt?
Delphi-Quellcode:
unit mZeichenZahl;

interface

uses mItem;

type
  TZeichenZahl = class(TItem)
  private
    fZeichen : char;
    fZahl : integer;
  public
    constructor create (pZeichen: char); virtual;
    procedure ErhoeheAnzahl; virtual;
    function GetZahl : integer; virtual;
    function GetZeichen : char; virtual;
    function isEqual (pItem: TItem) : boolean; override;
    function isGreater (pItem: TItem) : boolean; override;
    function isLess (pItem: TItem) : boolean; override;
    destructor destroy; override;
   end;

implementation

constructor TZeichenZahl.create(pZeichen: char);
begin
  inherited create;
  fZeichen := pZeichen;
  fZahl := 1;
end;

procedure TZeichenZahl.ErhoeheAnzahl;
begin
  fZahl := fZahl + 1;
end;

function TZeichenZahl.GetZahl : integer;
begin
  result := fZahl
end;

function TZeichenZahl.GetZeichen : char;
begin
  result := fZeichen
end;

function TZeichenZahl.isEqual (pItem: TItem) : boolean;
begin
  Result := Self.GetZeichen = TZeichenZahl(pItem).GetZeichen
end;

function TZeichenZahl.isGreater (pItem: TItem) : boolean;
begin
  Result := Self.GetZeichen > TZeichenZahl(pItem).GetZeichen
end;

function TZeichenZahl.isLess (pItem: TItem) : boolean;
begin
  Result := Self.GetZeichen < TZeichenZahl(pItem).GetZeichen
end;

destructor TZeichenZahl.destroy;
begin
  inherited destroy
end;

end.
Zitat:
Und was ist Zeichenzahlbaum, bzw. TBinarySearchTree und was gibt search zurück. (ich hoffe mal das sollte die Zeile 39 sein)
Ja es handelt sich um diese Zeile (mit search), entschuldige, dass ich das nicht markiert habe.

Die Search-Methode sieht wie folgt aus:

Delphi-Quellcode:
function TBinarySearchTree.search(pItem: TItem): TItem;
var
  lItem: TItem;
begin
  if binaryTree.isEmpty or (pItem = nil) then
    result := nil
  else
  begin
    lItem := TItem(binaryTree.getObject);
    if pItem.isLess(lItem) then
      result := self.getLeftTree.search(pItem)
    else
      if pItem.isGreater(lItem) then
        result:=self.getRightTree.search(pItem)
      else
        result:=lItem;
  end;
end;
  Mit Zitat antworten Zitat