OOP bzw. Vererbung?
-
Kann man objecktorientiert programmieren oder was für mich interessanter ist, kann man bei Assembler vererben?
mfg A-lex
-
Man kann alles, wenn man kann
Nur musst du halt alles selbst implementieren, d. h. Vererbung und Polymorphie werden nicht ohne weiteres unterstützt. Bei Vererbung musst du wohl mit vtable und Datenstrukturen arbeiten. Auf jeden Fall ist es sehr kompliziert und bringt nicht viel, es in Assembler zu versuchen.
-
der Turbo Assembler von Borland unterstützt OOP. aber ob der auch vererbung usw unterstützt, weiss ich jetzt nicht mehr. hier steht was drüber:
http://www.mujweb.cz/www/komsbomb/article/progobj.htm
naja einfach mal bei google "tasm oop" eingeben.
-
Assembler selber kanns nicht wirklich. Mit etwas rumtricksen gehts wohl, aber wozu?
Ich denke, heutzutage benutzt man Assembler vornehmlich um schnelle Routinen zu schreiben. Warum dann das Ganze mit OOP ausbremsen? Lohnt den Aufwand nicht..
P.S.: Hatte das alte Forum nicht ne Rechtschreibprüfung?
-
DocJunioR schrieb:
Ich denke, heutzutage benutzt man Assembler vornehmlich um schnelle Routinen zu schreiben.
Nur wenn man einen schlechten Compiler hat... Ok, manchmal kann man's wirklich händisch schneller machen, aber das ist schon sehr sehr selten.
Wenn du OOP machen willst, was nur dann sinnvoll wäre, wenn du einfach ein tiefgreifendes Verständnis davon erlangen willst, wie das umgesetzt wird, dann schau dir an, was ein C++-Compiler ausspuckt. Mit ausgeschalteten Exceptions! Wenn die Exceptions an sind, wird der Code so verwirrend, dass man sich kaum auskennt, aber ohne Exceptions ist es ziemlich schlicht und klar.
-
naja. wenn's um Hardwarenahe Sachen geht, wird auch noch Assembler genommen, aber streams müssen nicht objektorientiert sein...
-
beim MASM32 Packet ist so ein Object Creator/Object Code generator drin (X:\MASM32\OOP), da sind auch ein paar beispiele und tuts dazu. Allerdings bin ich mir nicht sicher ob ich das nicht doch irgendwo anders her habe ;). Nunja, bei interesse kann ich das ja per MAIL schicken (ca. 70KB gepackt).Du brauchst aber auf jedenfall masm32 um was damit anfangen zu können.
PS: Beispielcode:
CLASS STRUCTURE ; --=====================================================================================-- CLASS CSprite CMETHOD destructor CMETHOD setBitmap ; sets bitmap for sprite CMETHOD move ; move sprite CMETHOD draw ; draw sprite on drawDC CMETHOD setSpeed CMETHOD setScreenSize CMETHOD setDrawingDC hBitmap dd ? dcBitmap dd ? drawDC dd ? widthScreen dd ? heightScreen dd ? bmpWidth dd ? bmpHeight dd ? xPos dd ? yPos dd ? speed dd ? CSprite ENDS
............
method esi, CSprite, draw
[/code]