![]() |
Borland C++ Builder 6, To.Double
Hallo!
In der Schule gibts statt Delphi, C++ mit dem Borland Builder 6. Ich Frage mich gerade, warum die Methode To.Double (ist doch eine Methode?!?) hinten ansteht und wie ihr was übergeben werden kann, da die Klammern doch hintern leer sind.
Code:
Die Suche fühte mich in der dstring.cpp auf folgende Zeile:
Bsp: x = Edit1->Text.ToDouble()
Code:
Ich denke mir, das hier auf die Funktion StrToFloat umgeleitet wird. Aber immernoch bleibt bei ir die Frage, wie funktioniert das mit den hinten anstellen der Methode/Funktion und warum die Klammern leer bleiben.double __fastcall AnsiString::ToDouble() const { #if 0 //!JK change this to return a long double when the compiler properly //!JK promotes/demotes long doubles/doubles #endif return Sysutils::StrToFloat(*this); } Kann jemand mal Licht in mein Dunkel bringen? Dank und Gruß Glunzl |
Re: Borland C++ Builder 6, To.Double
Du bist hier seit 21.3.2004 angemeldet, du solltest also mittlerweile ein wenig programmieren können.
Wieso sollte man einer Funktion ToDouble() einen Parameter übergeben? Es ist eine Methode der verwendeten String-Klasse und wandelt den enthaltenen String in einen Wert vom Typ double um. Und wo sollte man sie sonst anstellen, wenn nicht hinten? Es ist eine Methode der Stringklasse, also schnappst du dir mit Edit1->Text den String und rufst die Methode auf, ganz einfach. Wäre in Delphi String ebenfalls eine Klasse und nicht Compiler-Magic, würde das in Delphi genauso funktionieren: Edit1.Text.EineMethode(). Und warum die Klammern leer bleiben, hast du schon richtig erkannt: es werden keine Parameter übergeben. Eine Methode, die lediglich das Objekt in einen anderen Typ umwandelt, braucht keinen weiteren Parameter mehr. Müsste man ihr etwas übergeben, müsste man es zwischen die Klammern schreiben, wie bei jeder anderen Funktion in C auch. |
Re: Borland C++ Builder 6, To.Double
Zitat:
Zitat:
Code:
Ich glaube, ich sehe den Wald vor lauter Schnee nicht ...
Bsp: x = Edit1->Text.ToDouble()
|
Re: Borland C++ Builder 6, To.Double
Zitat:
Code:
und der Rückgabewert von EineMethode() landet in der Variable x.
x = virtuelle_temporaere_variable.EineMethode();
|
Re: Borland C++ Builder 6, To.Double
Danke für die Hinweise. Ich werd das nochmal vertiefen müssen, sehe aber schon klarer :-)
Gruß glunzl |
Re: Borland C++ Builder 6, To.Double
Hallo nochmal!
Kann man denn allgemein sagen, das Methoden, da Objektbezogen, immer "hinten anstehen"? Und sind somit folgende Ausdrücke äquivalent:
Code:
Gruß
x = Edit1->Text.ToDouble() ;
x = StrToFloat(Edit1->Text) ; glunzl |
Re: Borland C++ Builder 6, To.Double
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:31 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