AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Originalfunktion in überladener Funktion nutzen?
Thema durchsuchen
Ansicht
Themen-Optionen

Originalfunktion in überladener Funktion nutzen?

Ein Thema von iphi · begonnen am 12. Nov 2009 · letzter Beitrag vom 12. Nov 2009
Antwort Antwort
iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#1

Originalfunktion in überladener Funktion nutzen?

  Alt 12. Nov 2009, 11:06
Kann ich eine Bibliotheksfunktion überladen und in der Definition die ursprüngliche Bibliotheksfunktion benutzen?

Also sowas:
Delphi-Quellcode:
function Trunc(x: TFloat): Int64; overload;
begin
if x<MAXINT then
  Result:=inherited Trunc(x) //also nicht rekursiv gemeint, inherited ist aber falsch
  else Result:=MAXINT;
end;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Originalfunktion in überladener Funktion nutzen?

  Alt 12. Nov 2009, 11:08
Indem du Funktion mit dem ursprünglichen Parametertyp aufrufst.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Originalfunktion in überladener Funktion nutzen?

  Alt 12. Nov 2009, 11:10
Oder Namespace (Unitnamen) angeben in der ursprüngliche FUnktion definiert ist:

:= System.Trunc(x)
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Originalfunktion in überladener Funktion nutzen?

  Alt 12. Nov 2009, 11:12
Wobei man Funktionen nicht überladen kann, sondern nur Methoden
Markus Kinzler
  Mit Zitat antworten Zitat
iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#5

Re: Originalfunktion in überladener Funktion nutzen?

  Alt 12. Nov 2009, 11:20
Trunc ist eine Funktion aus der Unit Math.
Weil es keine Methode ist geht Math.Trunc nicht.

Da die überladene Variante dieselben Argumente wie die Originalvariante wird der Aufruf automatisch rekursiv.

Das Überladen einer Funktion geht schon. Es wird tatsächlich mein Trunc statt das aus Math aufgerufen.

Komme ich in meiner Funktion nicht doch irgendwie an das Trunc aus Math ran?
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Originalfunktion in überladener Funktion nutzen?

  Alt 12. Nov 2009, 11:27
Zitat von iphi:
Weil es keine Methode ist geht Math.Trunc nicht.
Hast du es propbiert? "Unitname.Funktionsname" geht.

Edit: Und Trunc ist nach wie vor in Unit System.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#7

Re: Originalfunktion in überladener Funktion nutzen?

  Alt 12. Nov 2009, 11:33
Asche auf mein Haupt...
Stimmt, Trunc ist in System, hab ich verwechselt.

Und System.Trunc funktioniert. Super, danke
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Originalfunktion in überladener Funktion nutzen?

  Alt 12. Nov 2009, 13:15
Zitat von mkinzler:
Wobei man Funktionen nicht überladen kann, sondern nur Methoden
Doch, mit overload. override geht natürlich nur für Methoden.
Uli Gerhardt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Originalfunktion in überladener Funktion nutzen?

  Alt 12. Nov 2009, 13:19
Das ist aber kein Überladen, sondern nur eine Verschiebung des Scopes
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Originalfunktion in überladener Funktion nutzen?

  Alt 12. Nov 2009, 15:25
Zitat von mkinzler:
Das ist aber kein Überladen, sondern nur eine Verschiebung des Scopes
overload ist Überladen. Was der OP macht, ist aber (für mich) Verdecken und nicht Überladen, und Delphi verlangt dann auch kein overload. Meinst du das?
Uli Gerhardt
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:18 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