Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Unsatisfied forward or external declaration (https://www.delphipraxis.net/59568-unsatisfied-forward-external-declaration.html)

simonko 24. Dez 2005 14:13


Unsatisfied forward or external declaration
 
Delphi-Quellcode:
TQuadrat = class(TGeomFigur)
    protected
      FLaenge : real;
      procedure SetBreite(pbreite :real); virtual;
      procedure SetLaenge(plaenge :real); virtual;
    public
      property Breite : real write SetBreite;
      property Laenge : real write SetLaenge;
    end;
    TRechteck = class(TQuadrat)
    protected
      FBreite : real;
      procedure SetBreite(pbreite :real); override;
      procedure SetLaenge(plaenge :real); override;
    end;
diesen fehler krieg ich bei den 2 letzten proceduren. aber warum?

sakura 24. Dez 2005 14:23

Re: Unsatisfied forward or external declaration
 
Zitat:

Zitat von simonko
diesen fehler krieg ich bei den 2 letzten proceduren. aber warum?

Weil Du diese zwar deklariert hast, aber nie den eigentlichen Code dazu geschrieben hast.

...:cat:...

DP-Maintenance 24. Dez 2005 14:23

DP-Maintenance
 
Dieses Thema wurde von "sakura" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.

Dax 24. Dez 2005 15:32

Re: Unsatisfied forward or external declaration
 
Delphi-Quellcode:
TRechteck = class(TQuadrat)
Bahhh böse! Quadrate sind Sonderfälle von Rechtecken und nicht umgekehrt ;)

[/ot]

sakura 24. Dez 2005 15:41

Re: Unsatisfied forward or external declaration
 
Zitat:

Zitat von Dax
Bahhh böse! Quadrate sind Sonderfälle von Rechtecken und nicht umgekehrt ;)

In der OO-Programmierung aber so oder so nicht geschickt darzustellen. Es gibt keine allseits anerkannte Regelung in der OO, wenn man daraus zwei Klassen machen will.

...:cat:...

simonko 24. Dez 2005 17:03

Re: Unsatisfied forward or external declaration
 
wäre TQuadrat von TRechteck dann hätte ich in TQuadrat 2 variabeln die die werte der seitenlänge speichern. Im quadrat benötige ich nur eine!

3_of_8 24. Dez 2005 17:06

Re: Unsatisfied forward or external declaration
 
Schau dir mal die Smilies an: Das war nicht ernst gemeint.

sakura 24. Dez 2005 17:09

Re: Unsatisfied forward or external declaration
 
Zitat:

Zitat von 3_of_8
Schau dir mal die Smilies an: Das war nicht ernst gemeint.

Das würde ich einen Zwinker wie ;) nicht entnehmen. Zumal sich die Informatikerwelt da wirklich nicht einig ist. Es gibt iA drei Positionen für das Problem
  • Quadrat <- Rechteck
  • Rechteck <- Quadrat
  • Rechteck (+IsQuadrat: Bool)
...:cat:...

simonko 24. Dez 2005 17:41

Re: Unsatisfied forward or external declaration
 
ist doch eigendlich egal was von was komt. im diesem fall ist es günstiger das rechteck vom quadrat abzuleiten.

marabu 24. Dez 2005 18:36

Re: Unsatisfied forward or external declaration
 
Eine Klasse TQuadrat in Gegenwart einer Klasse TRechteck scheint mir ein Modellierungsfehler zu sein - egal wer von wem abgeleitet wird:

Delphi-Quellcode:
type
  TRectangle = class
    Height: Cardinal;
    Width: Cardinal;
    function IsSquare: boolean;
  end;

function TRectangle.IsSquare: boolean;
begin
  Result := Height = Width;
end;
Als Streitobjekt unter Informatikern habe ich das konkrete Thema nie kennen gelernt - oder erinnere ich mich nur nicht mehr daran?

Frohe Weihnachten vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz