Doppelter identifier trotz eindeutiger Zuordnung

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Noa

Betreff: Doppelter identifier trotz eindeutiger Zuordnung

BeitragMi, März 23, 2011 8:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo allerseits,

leider hat sich bei mir ein neues Problem ergeben, welches ich nun hoffentlich einigermaßen verständlich darlegen kann:

In einem Modul namens wing.util wurde TThread erweitert. Die Kompilierung dieses Moduls funktioniert (threaded) teadellos.
util.bmx(Auszug):
BlitzMax: [AUSKLAPPEN]

Type TThread Extends brl.threads.TThread


Nun wurde in einem anderen Modul der zuvor definierte Typ wing.util erweitert. Auch diese Komplilierung funktioniert (threaded).
nettcp.bmx(Auszug)
BlitzMax: [AUSKLAPPEN]

Type TRunServerClientThread Extends wing.util.TThread


Schließlich zum Problem. Erstelle ich nun ein Programm, in welchem ich "TRunSomethingThread" nutze, sagt er mir, dass TThread zweimal vergeben wäre und bricht ab und zeigt mir die .i-Datei des zweiten Moduls an:
nettcp.release.mt.win32.x86.i (Auszug)
Code: [AUSKLAPPEN]

TRunServerClientThread^TThread{
.Client:TServerClient&
-New%()="_wing_nettcp_TRunServerClientThread_New"
+Create:TRunServerClientThread(client:TServerClient)="_wing_nettcp_TRunServerClientThread_Create"
-Run:Object()="_wing_nettcp_TRunServerClientThread_Run"
}="wing_nettcp_TRunServerClientThread"


Wenn ich das richtig sehe, müsste da eigentlich "TRunServerClientThread^wing.util.TThread" stehen, tut es aber nicht, wieso?

Im Voraus vielen Dank für eure Antworten.
 

FWeinb

ehemals "ich"

BeitragMi, März 23, 2011 13:42
Antworten mit Zitat
Benutzer-Profile anzeigen
In deinem anderen Thread wurde geschrieben, dass das einklammern helfen sollte. Das war zwar auf New bezogen könnte hier aber auch helfen.

BlitzMax: [AUSKLAPPEN]
Type TRunServerClientThread Extends (wing.util.TThread)


Das würde zumindest in das System passen.
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs

Noa

BeitragMi, März 23, 2011 13:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Auf die Idee bin ich auch gekommen =) leider funktioniert das nicht. Der Compiler akzeptiert nach "Extends" keine Klammerung.

FireballFlame

BeitragMi, März 23, 2011 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum machst du sowas überhaupt?
Eine abgeleitete Klasse genauso zu nennen wie ihre Basis halte ich für keine gute Idee...
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

Noa

BeitragMi, März 23, 2011 13:57
Antworten mit Zitat
Benutzer-Profile anzeigen
FireballFlame hat Folgendes geschrieben:
Warum machst du sowas überhaupt?
Eine abgeleitete Klasse genauso zu nennen wie ihre Basis halte ich für keine gute Idee...


Ich habe fast schon drauf gewartet, dass eine solche Frage mal auftaucht: Nun unabhängig davon ob es sinvoll ist oder nicht, möchte ich doch eine Lösung für das genannte Problem.

Zum "Sinn": Ich habe angefangen ein eigenes Framework zu erstellen und dabei gemerkt, das wenn ich auf unterschiedliche Typenbezeichner setze, ich relativ schnell zu unendlich langen Bezeichnern kommen, was die Verwendung des Frameworks im Endeffekt erschwert. Folglich versuche ich nun möglich kurze Bezeichner zu verwenden und greife im Konfliktfall auf den module-Scope zurück. Allerdings scheint dies bei Vererbung nicht ganz so zu funktionieren wie bisher gedacht.

BtbN

BeitragMi, März 23, 2011 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Es existiert keine. Der Compiler baut in den intermediate code keine Modul-Pfade zu den Basis klassen ein, und somit wird dort immer TThread stehen, was zum duplicate identifider error führt.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group