| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 1.573
| Richtige Polymorphie
Also das man Funktionen und Operatoren nicht überladen kann bzw. seine eigenen Operatoren nciht erstellen kann ist klar. Gibt es aber eine Möglich keit seine eigenen Klassen von int oder anderen elementare Datentypen erben zu lassen? Wenn ich sagen wir mal einen erweiterten int Datentyp erstellen möchte kann ich nicht wie gewohnt mit ihm + und - rechnen sondern müsste mir Funktionen erstellen. Kann man sowas nicht umgehen? Code:
Mir geht es darum: Meine eigenen Datentypen so sinnvoll und flexibel wie möglich zu gestalten. Vllt hat ja einer ein paar Anregungen
__________________ Currently working on: - --- --- ----------------------------------------------------------------- ActionScript 3.0, C++, Java, Delphi |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 1.573
|
Ich sagte ja überladen geht ja leider nicht, deswegen erschwert es mir eine sinnvolle struktur zu finden, für meine eigenen datentypen die ich gern erstellenwürde: dashalb die frage wie man sowas sinnvoll und flexibel aufbaut, damit ich sogut wie alle funktionen abdecken kann, da int Number und uint ja final sind und ich diese nicht benutzen kann. es geht darum das ich gern meinen zahlenbereich durch eine klasse erweitern möchte, und dafür wärs cool wenn man überladen könnte aber sowas geht ja nicht, und deshalb frag ich wie man einen neuen "zahlentyp" am sinnvollsten struckturiert etc. ich habe ja gefragt ob jmd. ein paar vorschläge hat ![]() eben weil ich nicht operatoren schreiben kann, das ich aber trozdem alles an funktionalität abdecken kann.
__________________ Currently working on: - --- --- ----------------------------------------------------------------- ActionScript 3.0, C++, Java, Delphi |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 1.573
|
Wird wohl die einzigste Lösung sein. Die sollen sich bei Adobe mal ins Zeug legen und AS immer weiter ausbauen
__________________ Currently working on: - --- --- ----------------------------------------------------------------- ActionScript 3.0, C++, Java, Delphi |
| | |
| | #7 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg
Beiträge: 4.350
|
Nachdem das Flex SDK offen ist, könntest du auch selber Hand anlegen, und im guten alten Macromedia-Stil den Kompiler pimpen, und auf die Laufzeit einen lassen. Was das ganze mit Polymorphie (und dazu noch richtiger) zu tun hat, ist mir noch nicht klar
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 1.573
|
Wie im Macromedia-Stil, was kann man mitm Flex SDK (hab den Builder) was man mit Flash nicht kann an AS? Ja ich hab ja gefragt ob es irgendeine möglichkeit gibt eben überladen und anderes sachen der polymorphie (was überlaen z.b. ja ist ![]() irgendiwe erstellen bzw. so gut wie möglich nachzuahmen. Naja titel ist bisschen fehlgeraten ![]() nochmal zur wrapperklasse, da bei wiki nix zu finden is udn ich nur so kleine seiten finde: Code:
__________________ Currently working on: - --- --- ----------------------------------------------------------------- ActionScript 3.0, C++, Java, Delphi Geändert von _crypto_ (26-03-2008 um 21:46 Uhr) |
| | |
| | #9 (permalink) | |
| muh Registriert seit: Apr 2002 Ort: Freiburg
Beiträge: 4.350
|
Ok, da ich nur in AS Programmierung wirklich Erfahrung habe, was ja bekanntermaßen ein Polymorphie-feindliches Gebiet ist, habe ich bisher keine konkrete Vorstellung von der Bedeutung des Polymorphie-Begriffs gehabt. Ich dachte immer, es hieße Mehrfachvererbung, aber Wiki sagt: Zitat:
Zum SDK. Alles ist offen, d.h. du kannst den mxml-Compiler selber Kompilieren, klingt verrückt, ist aber so. Und wenn du das kannst, dann kannst du ihm auch beibringen, dass er, wenn er eine Variable vom Typ short findet, und dann einen Plus-Operator, statt dessen den Bytecode für deineVariable.add( erzeugt. Der Aufwand wäre wahrscheinlich sehr groß, aber möglich wäre es. Zur Laufzeit wäre das alles hinfällig, im Bytecode stehen doch wieder nur Funktionsaufrufe. Macromedia-Stil deshalb, weil Macromedia ganz AS2 auf diese Weise implementiert hat, der Kompiler verstehts, macht aber dumpfes AS1 draus. Wrapper Klassen enthalten irgendwas, und ermöglichen der Umwelt den Zugriff darauf auf komfortable, oder anderweitig vorteilhafter Weise. Eine short-Wrapper-Klasse könnte z.B. in einer setValue Methode den Wert auf 256 beschränken, so dass bei getValue unmöglich was größeres rauskommt als 256. Anscheindend ist die uint-Klasse übrigens auf diese Art implementiert, es handelt sich dabei einfach um eine Wrapper-Klasse, die eine Number wrappt. (daher auch die Performance-Einbußen bei der Verwendung von uint)
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) | |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 1.573
|
jo danke für das wrappererklärungsbeispiel ![]() werd mich mal dransetzen, aber das mit dem macromedia-stil muss ich mir unbedingt anschauen, schließlich geht es bei meinem vorhaben um zahlen von einer größe bis zu 4096 bit sprich 1233 dezimalstellen.ich hoffe adobe macht sich zumindest bei operatoren überladen, funktionen is mir bis jetz in AS nie aufgefallen, dass ichs brauchte, ich glaube das liegt daran das adobe bei der entwicklung von AS gut gedacht hat. AS unterscheidet nicht zwischen wrapper und normaler klasse Code: var i : int = 10; var j : int = new int( 10 ); ?
__________________ Currently working on: - --- --- ----------------------------------------------------------------- ActionScript 3.0, C++, Java, Delphi |
| | |
| | #11 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg
Beiträge: 4.350
|
Erste Anlaufstelle ist mit Sicherheit Adobe. Dort bekommst du den Source-Code, und auch Dokumentation. Ein wichtiger Punkt bei dieser Sache ist, dass du dir im klaren bist, dass keiner deinen Code ohne deinen Compiler kompilieren kann, schließlich schreibst du dann kein gültiges Standard Adobe AS3 mehr. Dass die bei der Entwicklung für AS3 gut gedacht haben, halte ich mal für eine gewagte Behauptung , aber auf jeden Fall haben sie den Entwicklungsprozess durch die Veröffentlichung extrem verbessert, die öffentliche Bug-Datenbank ist für mich immer noch ein Wunder.EDIT: also wenn ich mal eine grobe Aufwandseinschätzung abgeben darf, dann tippe ich auf einen grauen Bart an deinem Kinn, wenn du den Compiler entsprechend angepasst hast.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) Geändert von Janoscharlipp (26-03-2008 um 23:16 Uhr) |
| | |
| | #12 (permalink) |
| Nagelneuer User Registriert seit: Dec 2005
Beiträge: 924
|
Nur für den Fall, dass du wirklich den Compiler suchst, die Sourcen sind erst ab Sommer erhältlich. Wenn du den Pfad des kleinsten gemeinsamen Nenners eh verlassen willst, kannst du auch gleich eine bessere Sprache benutzen. Für haxe kannst du alle Sourcen bekommen und an deine Bedürfnisse anpassen.
__________________ The fact that you've got "Replica" written on the side of your gun and the fact that I've got "Desert Eagle written on the side of mine ... :D |
| | |
| | #13 (permalink) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 1.573
|
ich kann auch einfach mit C++ weitermachen ![]() ich finde AS aber iwie cooler im momment ^^
__________________ Currently working on: - --- --- ----------------------------------------------------------------- ActionScript 3.0, C++, Java, Delphi |
| | |
| | #14 (permalink) |
| Nagelneuer User Registriert seit: Dec 2005
Beiträge: 924
|
Mit haxe kannst du allerdings für den Flashplayer programmieren. Mit C++ ist das schon schwieriger.
__________________ The fact that you've got "Replica" written on the side of your gun and the fact that I've got "Desert Eagle written on the side of mine ... :D |
| | |
| | #15 (permalink) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 1.573
|
Naja wir weichem vom eigentlichem thema iwie ab ^^ aber ich meinte, wenn ich n anderes programm nehmen soll nur damit ich was mit flash ändern kann, bringts mich nicht viel da es dann nicht jedem zu verfügung steht, ähnlich wie Janoscharlipp meinte, es könne nur jder mit meinem compiler kompilieren. und dann kann ich ja auch gleich C nehmen da hab ich alles was ich brauche aber wie gesagt mir geht C++ grad so auf die nerven ^^
__________________ Currently working on: - --- --- ----------------------------------------------------------------- ActionScript 3.0, C++, Java, Delphi |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |