Methode überschreiben -> Was bedeutet der Fehler?
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
M0rgensternBetreff: Methode überschreiben -> Was bedeutet der Fehler? |
Di, Mai 04, 2010 21:09 Antworten mit Zitat |
|
---|---|---|
Hey Leute.
Ich bin gerade dabei die Wegpunkte zu erweitern. Dabei habe ich jetzt folgendes Problem: Ich überscheibe die Create Funktion komplett durch eine neue und bekomme folgenden Fehler angezeigt: Zitat: Compile Error: Overriding method differs by type
Build Error: failed to compile F:/BlitzMax Porgramming/WIP/AlienShooter2D/Includes/WaypointClass.bmx Undzwar in dieser Zeile: BlitzMax: [AUSKLAPPEN] Function Create:TStartpoint(px:Int, py:Int, pWavetime:Int, pEnemyamount:Int, pwaveamount:Int, pID:Int = 0) In der Parentklasse sieht die funktion so aus: BlitzMax: [AUSKLAPPEN] Function Create:TWaypoint(px:Int, py:Int, pID:Int = 0) Was bedeutet die Fehlermeldung also, bzw was mache ich falsch? Liegt das vielleicht an den Variablen die übergeben werden sollen? In ner anderen Klasse hat das überschreiben der Create Funktion nämlich funktioniert. Lg, M0rgenstern |
||
mpmxyz |
Di, Mai 04, 2010 21:13 Antworten mit Zitat |
|
---|---|---|
Wenn du Funktionen/Methoden überschreibst, müssen die gleichen Parameter und Rückgabewerte genutzt werden.
Da das hier nicht der Fall ist, meckert BlitzMax. mfG mpmxyz Edit: Wäre es vielleicht nicht besser, eine eigene Wave-Klasse zu erstellen? Die Daten einer Angriffswelle haben nicht viel mit einem Waypoint zu tun. Du könntest dann für jede Angriffswelle auch mehrere Startpunkte definieren. |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
- Zuletzt bearbeitet von mpmxyz am Di, Mai 04, 2010 21:16, insgesamt einmal bearbeitet
AvaGast |
Di, Mai 04, 2010 21:14 Antworten mit Zitat |
|
---|---|---|
Du kannst Methoden nur mit identischen Eigenschaften überschreiben (Parametern / Rückgabe). Das hast Du nicht getan. Und genau das sagt Dir die Fehlermeldung.
[/Edit] Mal wieder zu spät ... |
||
- Zuletzt bearbeitet von Ava am Di, Mai 04, 2010 21:14, insgesamt einmal bearbeitet
M0rgenstern |
Di, Mai 04, 2010 21:14 Antworten mit Zitat |
|
---|---|---|
Hm...
Diese Klasse braucht aber diese Attribute. Die alte Klasse braucht das nicht. Kann ich das umgehen? Lg, M0rgenstern |
||
AvaGast |
Di, Mai 04, 2010 21:15 Antworten mit Zitat |
|
---|---|---|
Ja, in dem Du verschiedene Methoden verwendest... | ||
M0rgenstern |
Di, Mai 04, 2010 21:18 Antworten mit Zitat |
|
---|---|---|
Ouch.
Ja stimmt. Dämliche Frage. Sorry. Mensch. Der Name Create hat sich so schön für nen Konstruktor angehört. Vielen Dank. Lg, M0rgenstern |
||
Artemis |
Di, Mai 04, 2010 21:42 Antworten mit Zitat |
|
---|---|---|
Eine Möglichkeit, das zu Umgehen ist, etwas unschön, einfach den Klassennamen nochmal reinpacken.
Also statt TWaypoint.Create ein TWaypoint.CreateWaypoint. Bei wxMax wird auch immer eine Funktion Create verwendet. Hier hat Brucey das so gelöst, dass Parent-Klassen, nie alleine erstellt werden, also eigentlich abstrakt sind und daher haben die Parent-Klassen immer eine Create_ Funktion. Ist aber bei Vererbungen, wo man sowohl das Parent als auch das Child erstellt nicht schön, vor allem da bei vielfacher Vererbung so Dinge wie Create___ entstehen. |
||
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group