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

Linuxer
 2019-01-20 19:36
#189494 #189494
User since
2006-01-27
3888 articles
HausmeisterIn

user image
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...
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread OOP Verständnisproblem!