AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Abstract

Ein Thema von simonko · begonnen am 24. Dez 2005 · letzter Beitrag vom 24. Dez 2005
Antwort Antwort
Seite 1 von 2  1 2      
simonko

Registriert seit: 2. Jun 2005
125 Beiträge
 
#1

Abstract

  Alt 24. Dez 2005, 13:45
Ich muss eine Klasse TGeomFigur erstellen die dann als nachfolger Tquadrat und Tdreieck haben wird.
Ich hab folgendes programmiert.

Delphi-Quellcode:
TGeomFigur = class(TObject)
  protected
    function GetUmfang : real; virtual; abstract;
    function GetFlaeche : real; virtual; abstract;
  public
    property Umfang : real read GetUmfang;
    property Flaeche : real read GetFlaeche;
  end;
nun zu meiner frage. soll ich die propertys auch unter protected geben? weil sonst könnte ja jemand zugreifen und da gibts nen fehler. oder?
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Abstract

  Alt 24. Dez 2005, 13:49
Regel 1: Nie Objekte mit abstrakten Methoden instanziieren!

Da du TGeomFigur als Basisklasse nutzt (mit abstrakten Methoden), kannst du die Properties gerne unter public lassen. Aber nur unter einer Bedingung: nie TGeomFigur direkt instanziieren, sondern nur Nachfahren.
  Mit Zitat antworten Zitat
simonko

Registriert seit: 2. Jun 2005
125 Beiträge
 
#3

Re: Abstract

  Alt 24. Dez 2005, 13:51
dann kann ich ja alles unter public geben wenn ich es sowieso nie instanziere?
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: Abstract

  Alt 24. Dez 2005, 13:52
Das zu tun steht dir natürlich frei, aber wenn du bereits eine ReadOnly-Property hast, warum willst du dann noch den Getter zeigen?
  Mit Zitat antworten Zitat
simonko

Registriert seit: 2. Jun 2005
125 Beiträge
 
#5

Re: Abstract

  Alt 24. Dez 2005, 13:59
ich bin ein bisschen verwirrt. wenn ich es jetzt als protected hab kommt es dann in der abgeleiteten klasse als private oder public?
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#6

Re: Abstract

  Alt 24. Dez 2005, 14:13
In einer abgeleiteten Klasse kommt das dann auch unter protected, du kannst es aber nach Public schieben. Nach private geht auf keinen Fall, die Sichtbarkeit von etwas zu verringern wäre Unsinn...
  Mit Zitat antworten Zitat
simonko

Registriert seit: 2. Jun 2005
125 Beiträge
 
#7

Re: Abstract

  Alt 24. Dez 2005, 14:16
wie kann ich das nach public schieben?
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Abstract

  Alt 24. Dez 2005, 14:18
indem du die entsprechende funktion überschreibst und das ganze im public-teil machst.
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#9

Re: Abstract

  Alt 24. Dez 2005, 16:05
Delphi-Quellcode:
TGeomFigur = class(TObject)
  protected
    function GetUmfang : real; virtual; abstract;
    function GetFlaeche : real; virtual; abstract;
    property Umfang : real read GetUmfang;
    property Flaeche : real read GetFlaeche;
  end;

TRechteck = class(TGeomFigur)
protected
    function GetUmfang : real; override;
    function GetFlaeche : real; override;
public
  property Umfang: real;
end;
müsste klappen zum verschieben der Sichtbarkeit
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Abstract

  Alt 24. Dez 2005, 17:24
Zitat von jim_raynor:
müsste klappen zum verschieben der Sichtbarkeit
Oder noch schneller, da Umfang ja schon in der Basisklasse bekannt ist:

Delphi-Quellcode:
TRechteck = class(TGeomFigur)
protected
    function GetUmfang : real; override;
    function GetFlaeche : real; override;
public
  property Umfang;
end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz