Thread OOP Verständnisproblem! (22 answers)
Opened by kolibri250 at 2019-01-20 00:13

kolibri250
 2019-01-20 22:32
#189497 #189497
User since
2019-01-20
51 articles
BenutzerIn
[default_avatar]
2019-01-20T18:36:38 Linuxer
Das bless $self,ref($class)||$class; wird interessant, wenn Du new() auf ein bestehendes Objekt aufrufst.

Also:

Code (perl): (dl )
1
2
3
4
5
6
7
# 1. initialisiere ein neues Objekt der Klasse "Foo"
my $object = Foo->new();

# vs.

# 2. initialisiere ein neues Objekt der gleichen Klasse wie $object eines ist
my $object2 = $object->new();


Wird der Klassenname verwendet (wie in 1.), liefert ref($class) einen Leerstring, was als "unwahr" interpretiert wird, und der übergebene Klassenname wird für das bless() verwendet.

Im zweiten Fall liefert ref($class) den Klassennamen der aufrufenden Objektes und bless verwendet diesen.
Das ist hilfreich, wenn Du beispielsweise Objekte gleichen Typs herstellen willst.

Bei mir landet das automatisch immer in der new()-Routine; ist eine Gewohnheit mittlerweile bei mir...



eventuell bin ich ja bisserl begriffsstutzig, aber wo ist da jetzt der mehrwert??

ich meine.. wenn ich $objekt2=Foo->new(); notiere ists doch auch ein objekt des selben typs?!??

oder wird dann eine kopie des objekts angelegt, die geladenen daten mitkopiert?? dann hats natürlich einen mehrwert..

könnte man dann aber auch mit $objekt2=$objekt; machen, oder fahr ich da schon wieder mit dem falschen dampfer??
Last edited: 2019-01-20 22:33:09 +0100 (CET)

View full thread OOP Verständnisproblem!