Veröffentlicht 4. März 200520 j Hallo zusammen, zuerst: ich bin ein Perl Newbie und bin in einen Code reingeschmissen worden, der OOP ist. Und nun verzweifel ich grad an folgenden Dingen. Folgendes: Ich habe zwei Klassen: eine Klasse Box und eine Klasse Layer von der Klasse Layer habe ich ein Objekt erzeugt: $test = new Klasse::Layer('Hallo',1,1); von der Klasse Box habe ich ebenfalls ein Objekt erzeugt: $BoxObject = new Klasse::Box(new Klasse::Position, new Klasse::Groesse); Beides Funktioniert ohne Probleme. Nun möchte ich aus dem $BoxObject die Methode GetLayerName() aufrufen. In dem Package, wo die Klasse ist, ist diese Methode wiefolge deklariert: sub GetLayerName {....} Diese Methode gibt einen Pointer auf ein Object der Klasse Layer zurück (hab ich aus der Doku hier). Nun mach ich folgendes. Wenn diese Funktion ja einen Pointer auf ein LayerObjekt erwartet, dann schreibe ich auch in eins: $test = $BoxObject->GetLayerName; Mit dem $test Layer Object möchte ich nun was anstellen, nämlich den Namen setzen: $test->setzeName('Hallihallo'); Deklariert ist die Methode wiefolgt: *setzeName= *PackageXY::SetLayerName; (es verweist auf eine Externe C-Source)... Führe ich mein Skript nun aus bekomme ich folgende Fehlemeldung: Can't call method "setzeName" on unblessed referecne at Name der Anwendung Ich glaube, das liegt an diesem besonderen Aufruf von "setzeName". Kann mir da wer helfen? Ich blick da nicht durch und ich weiß auch nicht, nach welchem Schlagwort ich googeln soll... Gruß Ganymed
4. März 200520 j Hallo Gany, kannst du mal deinen Code posten? Nur mit den Codeausschnitten kann ich nichts anfangen .... mit dem gesamten (zumindest diesen Teilausschnitt) Code könnte ich mich da mal etwas einarbeiten.
4. März 200520 j bzw. gib doch mal deine Fehlermeldung bei google ein .... vielleicht hast du da nen Treffer
4. März 200520 j Autor Hallo Gany, kannst du mal deinen Code posten? Nur mit den Codeausschnitten kann ich nichts anfangen .... mit dem gesamten (zumindest diesen Teilausschnitt) Code könnte ich mich da mal etwas einarbeiten. Das ist das Problem: Das ist über 3 Dateien verteilt und das sind die entscheidenen Zeilen. Das mit der Meldung versuch ich mal - so einfach... Mal sehen, was draus wird
4. März 200520 j A method call must know in what package it's supposed to run. It ordinarily finds this out from the object reference you supply, but you didn't supply an object reference in this case. A reference isn't an object reference until it has been blessed!!!!! bRuTeForCe alias brainslave
4. März 200520 j Autor A method call must know in what package it's supposed to run. It ordinarily finds this out from the object reference you supply, but you didn't supply an object reference in this case. A reference isn't an object reference until it has been blessed!!!!! Und was heißt das jetzt? Das Object hat ein bless() im Kontruktor...
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.