Extends

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Daniel Knobe

Betreff: Extends

BeitragMi, Dez 07, 2005 19:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich würde gerne 2 Klassen in eine andere Klasse vererben.
Wie muss man Extrens schreiben damit man 2 Klassen anbegen kann.

mfg
DKing

Jolinah

BeitragMi, Dez 07, 2005 19:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Mehrfachvererbung geht leider nicht in BlitzMax Sad

TheShadow

Moderator

BeitragMi, Dez 07, 2005 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
mach tmp-klasse und vererbe diese an nächste
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

stfighter01

BeitragMi, Dez 07, 2005 20:31
Antworten mit Zitat
Benutzer-Profile anzeigen
tmp klasse?

wozu?

@daniel

ist nicht möglich.
eine von den beiden klassen muss irgendwo von der anderen klasse erben, sonst kannst du keine keinen sub typ basteln der beide klassen in sich beinhaltet.
Denken hilft!

regaa

BeitragDo, Dez 08, 2005 1:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Haben viele Sprachen nicht drin weil es wenig Sinn macht bzw. dann denk einfach um. Ist leichter.
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net
 

Dreamora

BeitragDo, Dez 08, 2005 11:00
Antworten mit Zitat
Benutzer-Profile anzeigen
regaa hat Folgendes geschrieben:
Haben viele Sprachen nicht drin weil es wenig Sinn macht bzw. dann denk einfach um. Ist leichter.


Wohl eher weil die Programmierer der Sprachen nicht mächtig waren, Inheritance Selection-Redefine-Renaming Mechanismen in ihre Compiler / Precompiler zu schreiben, ohne welche Mehrfachvererbung nutzlos bis ein totaler Albtraum ist.


Es macht nämlich ziemlich viel Sinn mehrfach Vererbung zu haben.
Man könnte es gar so sehen, das es relativ wenig Sinn macht, OO Sprachen ohne zu entwickeln. Denn wozu kann man alles schön abstrakt deklarieren, wenn man danach nur "1 Blueprint" nutzen kann?
Das ist ziemlich nutzlos ...

Und Multiinheritance kann man leider auch nicht faken ... man muss extrem komplex rumpfuschen um mehrere "Baupläne" in einen reinzubekommen und was man am Schluss hat, lässt häufiger Mal zu wünschen übrig ...

Bsp: Machst du für ein Auto auch nur 1 Blueprint? Kaum oder? Karosserie, Motor, Elektronik etc hat alles einen eigenen Blueprint ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Suco-X

Betreff: ......

BeitragDo, Dez 08, 2005 13:10
Antworten mit Zitat
Benutzer-Profile anzeigen
He Dreamora, http://tutorial.schornboeck.ne...erbung.htm
Zitat:

Dieses Feature ist sehr umstritten und in einigen anderen Sprachen (Java, C#,... ) ist deshalb mehrfach Vererbung verboten.

Du denkst also, C# ist eine nutzlose Sprache, nur weil keine Mehrfachvererbung erlaubt ist?
Meinst du nicht es wäre mal Zeit einzugestehen, dass du eigentlich überhaupt keine Ahnung hast?
Mehrfachvererbung macht keinen Sinn, nenn mir doch ein brauchbares Beispiel.
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

Jolinah

BeitragDo, Dez 08, 2005 13:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
In C++ kann eine Klasse von mehreren Klassen erben. Dieses Feature ist sehr umstritten und in einigen anderen Sprachen (Java, C#,... ) ist deshalb mehrfach Vererbung verboten. Aber auch dort kann eine Klasse von mehreren Interfaces erben. Ein Interface ist eine Art abstrakte Klasse.


Und das kann durchaus sinnvoll sein, zudem sprach Dreamora ja von abstrakten (siehe oben, Interface) Klassen.
  • Zuletzt bearbeitet von Jolinah am Do, Dez 08, 2005 13:48, insgesamt 2-mal bearbeitet

Phalastos

BeitragDo, Dez 08, 2005 13:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Wohl eher weil die Programmierer der Sprachen nicht mächtig waren, Inheritance Selection-Redefine-Renaming Mechanismen in ihre Compiler / Precompiler zu schreiben, ohne welche Mehrfachvererbung nutzlos bis ein totaler Albtraum ist.


Hast Du auch noch ne andere Platte auf Lager?
Es gibt Schrottplätze wo man Auto´s zerstören kann.
Vieleicht ist das der bessere Weg als immer die selbe Leier aufzufahren.
Wenn Du einen höheren Skill hast als "die Programmierer der Sprachen ", dann frage ich mich wo Deine eigene Programmiersprache bleibt.
Immer nur motzen ist einfach traurig...
Forbiddenmagic - Warfare of Forgotten Power

regaa

BeitragDo, Dez 08, 2005 13:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Möööp, fühle mich leicht angegriffen. Das war meine Meinung, nicht DIE MEINUNG. Für mich macht Mehrfachvererbung wenig Sinn.

@Dreamora: Kann mir unter deinem Beispiel recht wenig vorstellen. Vielleicht bin ich aber auch zu dumm für.
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net

Jan_

Ehemaliger Admin

BeitragDo, Dez 08, 2005 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
WAs heißt hier siene Programmiersprache, ausser APrticle Dreams, habe ich noch garnix von ihm gesehen.
between angels and insects
 

Ava

Gast

BeitragDo, Dez 08, 2005 17:27
Antworten mit Zitat
Ich bin mir jetzt nicht sicher, ob ich das Problem bzw. das Ziel einer solchen "Mehrfachvererbung" richtig verstehe. Aber wenn ich einer Objektklasse die Eigenschaften zweier Grundklasse einverleiben möchte, dann erstelle ich doch ganz einfach nur zwei Links zu diesen Klasse- oder nüch ?!

Beispiel:

Ich möchte, dass eine Objektklasse aus einer Grafik- und einer Physik-Klasse "erbt". Dann bekommt diese neue Objektklasse einfach zwei Verweise "graphic:t_graphicObject" und "physik:t_physicObject" und dann kann es auf die Funktionen und Werte dieser Klasse oder einer ihrer Erben zugreifen. Man müsste dann vielleicht noch eine kleine Schnittstelle in das Objekt mit einbauen, aber das ist ja nicht die Welt.

Wenn das nun völlig am Thema vorbei geschossen ist, könnte mir vielleicht jemand da mal den Unterschied erklären? Very Happy

TheShadow

Moderator

BeitragDo, Dez 08, 2005 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Das klappt doch wunderbar - was macht ihr für Stress - Z hab von X und Y geerbt. Sowas macht man mit TMP-Klassen.

BlitzBasic: [AUSKLAPPEN]

Type x
Field a
EndType

Type y Extends x
Field b
EndType

Type z Extends y
Field c
EndType

Local t:z=New z
Print t.a
Print t.b
Print t.c
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

Ava

Gast

BeitragDo, Dez 08, 2005 18:16
Antworten mit Zitat
In diesem Fall kann man aber y nicht völlig unabhängig von x gestalten. *hm*
Bzw. ist z dann auch im Prinzip nur wieder ein Abklatsch von x und hat keine wirklich unterschiedlichen Eltern.

Blacal

BeitragDo, Dez 08, 2005 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Servus

Ich persönlich trauer der Mehrfachvererbung nicht nach.
Hat halt seine vor- und nachteile. Nachteil ist eindeutig die Übersichtlichkeit. Man kann damit viel Scheiß treiben, und manche tuns auch.

Eine gute zwischenlösung macht da java mit den Interfaces (im Prinzip auch ne Klasse, diese hat aber NUR Abstracte Methoden)

Ansonsten. Warum sollte brl Mehrfachvererbung einbauen? BlitzMax ist für Hobbyprogrammierer, und für kleine Projekte braucht man des wirklich nicht. Und wer meint, mit zig vererbten Klassen seine "Intelligenz" raushengen lassen zu müssen, ist beim Programmieren sowieso falsch. Und bei BlitzMax sowieso.

Mfg Blacal

TheShadow

Moderator

BeitragDo, Dez 08, 2005 21:07
Antworten mit Zitat
Benutzer-Profile anzeigen
hm jo stimmt...

naja OOP ist nicht nur Segen meiner Meinung nach... ich finde reine OOP-Sprachen katastrophal - das ist soviel umstand und rumgewurschle - alles ist irgendwie unflexibel... bah...

Da gefällt mir die "alte" Programmierweise besser..
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

Dreamora

BeitragFr, Dez 09, 2005 13:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Jan_ hat Folgendes geschrieben:
WAs heißt hier siene Programmiersprache, ausser APrticle Dreams, habe ich noch garnix von ihm gesehen.


Jo weil ich meine Cartography Shop PlugIns runtergenommen habe, als ich den Zoff mit Josh "noSupport" hatte und die Dark Basic Sources runter sind als ich halt mit DBP aufgehört habe ...

Und mein Terrain System is net oben, weil ich keinen Bock dazu habe, das irgendwem zu geben, wenn das doch eh immer alle viel besser können!
(Ne ernsthaft: Es ist aktuell ein ziemliches QuadTree gebastel, dass eine durchdachte Nutzung verlangt, damit andere Objekte sinnvoll damit interagieren können. Es ist von daher nicht sehr nutzungsfreundlich. Und da ich zumindest im Moment B3D nicht nutze, wird es da auch keine nutzungsfreundlichere Version geben in absehbarer Zeit. Immerhin gehöre ich nicht zu denen, die alles was sie machen sofort verscherbeln wollen oder? Smile Und ich helfe den Usern hier mit Ideen und PseudoCode, zumindest denen, die sich helfen lassen.)
Die alte Version des Terrain Systems war ja eine ganze Zeit oben und wurde auch von verschiedenen Leuten heruntergeladen und damals genutzt.
Mittlerweile gibt es ja 1-2 interessantere TerrainSysteme allen voran wohl das, welches aktuell im BB.Com showcase board herunterzuladen ist.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Daniel Knobe

BeitragSa, Dez 10, 2005 0:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich finde Mehrfachvererbung mehr als sinnvoll, den ich weis erlichgesagt jetzt nicht vofür ich Objekt oriertiert programmieren soll. Wollte mir eine Gui für mein Spiel schreiben und speziele Eigenschaften in je eine Klasse packen.
Eigentlich macht das doch dann nur sinn wenn man einen eigenen Dateityp coden will der halt mehrere variablen hat die man dann mit speziellen methoden konfigurieren kann.

Würde mir eine Mehrfachvererbung wünschen^^, wer sie nicht haben will soll sie nicht nutzen Laughing
Ich für meinen Teil ... ^^

@ TheShadow:
Kannst du mir einen Beispielcode zeigen wie du diese Blockade omgehst mit deiner Methode?
mfg
DKing

TheShadow

Moderator

BeitragSa, Dez 10, 2005 14:11
Antworten mit Zitat
Benutzer-Profile anzeigen
man kann nur 1x vererben. Einzige Ausnahme wäre, wenn Type Z gleich von Type X und Y erben kann - wobei schon Y von X geerbt hat. Wenn Y und X komplett eigenständig sind, dann kann man nur eins davon vererben...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

Daniel Knobe

BeitragDo, Dez 15, 2005 18:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, wenn man keine mehrfachvererbung hat, wie soll man dann wie in dieser Grafik verdeutlicht vererben???
http://dking.dk.funpic.de/BlitzMax/1.bmp
Klasse 1 will von Klasse a und b erben?
Klasse 2 nur von Klasse b?

Dumm währe ja in Klasse 1 ein objekt auf die zu erbenden klassen a und b zu stellen und in klasse b ein objekt auf klasse b.

Das würde die ganze sache nur unnötig kompliziert machen.

mfg
DKing

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group