Kann Object nicht zu Int konvertieren?
Übersicht

![]() |
M0rgensternBetreff: Kann Object nicht zu Int konvertieren? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Leute.
Ich hab ein kleines Problem was mich wundert. Undzwar habe ich eine Funktion die folgendermaßen aussieht: BlitzMax: [AUSKLAPPEN] Method X:Float(p:Object) Wie ihr seht möchte ich in der zweiten If-Abfrage ein Objekt vom Typ Object in Int konvertieren. Aber mein Compiler sagt mir "unable to convert from Object to Int" Warum ist das so? Es müsste doch gehen oder hab ich was falsch gemacht? Ich seh meinen Fehler grade nicht. Kann mir da vielleicht jemand helfen? Lg, M0rgenstern |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
In kurz:
Sind Zahlen Objekte? Nein! Lassen sich Objekte in Zahlen konvertieren? Warum sollten sie? (Hast du einen Grund, warum man das machen können sollte?) mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber man kann doch eigentlich von Object aus alles casten, oder?
Ich mein, sonst wären Funktionspointer ja auch sone Sache, oder seh ich das falsch? Lg, M0rgenstern |
||
Macintosh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
integer, floats, shorts, bytes, doubles und longs sind aber keine objekte ;)
du kann aus objekten nur objecte kasten, da object sowas wie die superklasse (hoffe das simmt jetzt) aller objekte ist |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zahlen und Pointer sind primitive Datentypen und daher keine Objekte.
Sie werden nicht wie ein Objekt erstellt, sondern sind einfach nur Werte, die aus mehreren Bytes bestehen können. Objekte hätten für solche Werte einen zu großen Overhead. So müsste man für jede Byte-Variable eine Referenz mit 4 Byte Speicherverbrauch zu einem Byte-Objekt, welches mindestens eine zusätzliche Typangabe mit wahrscheinlich auch 4 Bytes Speicherverbrauch benötigt, bereitstellen. So kommt man alleine bei einen Byte-Wert auf 9 Bytes Minimalverbrauch zur Verwaltung. Zusätzlich muss der Garbage Collector auch die ganzen Zahlenobjekte kontrollieren. Hier kommt also noch etwas an Daten und Rechenzeit hinzu. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
OKay. Stimmt, hätte mir klar sein müssen.
Dann aber mal ne Frage: Wie siehts mit Funktionspointern aus als Attribut einer Klasse? Also, da legt man den Rückgabewert doch am besten auch erstmal als Object fest. Wie siehts dann da aus? Lg, M0rgenstern |
||
Macintosh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nö, wenns die funktion deinen funktionpointers nen int zurückginbt, muss das auch im funktionspointer sein. so ist das ^^ | ||
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
UNd wie machen die Leute das die ne GUI schreiben?
Die wissen ja vorher nicht wozu die Klick Methode der Buttons sien soll bzw was die zurückgeben soll. Oder habe ich hier nen total falschen Ansatz was das anbelangt? Lg, M0rgenstern |
||
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst die Funktion in einen Byte Ptr packen, aber nur Funktionen ... keine Objekte odr Methoden. | ||
Farbfinsternis.tv |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Achso.
Und was genau ist byte ptr? Lg, M0rgenstern |
||
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Byte Ptr war Quatsch ... das hier funktioniert:
BlitzMax: [AUSKLAPPEN]
|
||
Farbfinsternis.tv |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm.
Könnte man diese Funktion: BlitzMax: [AUSKLAPPEN] Function TestCallback() Auch so umschreiben: BlitzMax: [AUSKLAPPEN] Function TestCallback() Und diese dann eben der Instanz aus der Klasse entsprechend zuweisen. Lg, M0rgenstern |
||
Macintosh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
naja, wenn du eine ui machst, sollte die button callback normalerweise nichts zurück geben, und wenn dann nimmt man meist object. | ||
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Funktion muss im Type (das Field) dann mit Rückgabewert deklariert werden und die Callback Funktion dann exakt so implementiert werden. Da wäre es einfacher die Callbacks im Type virtuell zu deklarieren und den User zu zwingen sie per Extend zu definieren. | ||
Farbfinsternis.tv |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group