2
'=' Perl'de doğrudan aşırı yüklenemediğini biliyorum, ancak nesnelerimden biri için kopya oluşturucuyu çağırmak için '=' öğesini kullanmak istiyorum.Perl'de bir kopya oluşturucuyu '=' nasıl yapabilirim?
örnek:
1
12
nasıl bu iş yapabilirsiniz:
my $object1 = Object->new('value' => 1);
# I want this to invoke the copy constructor of "$object1" instead of copying a reference
my $object2 = $object1;
# This should not modify "$object1"
$object2->set_value(12);
print $object1->get_value()."\n";
print $object2->get_value()."\n";
Ben çıkış olmak istiyorum?
Perl, Kurucular kopyalamak veya başka şekilde değil. Sözleşme, “klon” adı verilen bir yöntem oluşturmaktır. // Nesnenin aşırı yüklenen operatörler haricinde değişmezse, yazma işlemi yapmak için [this] (http://search.cpan.org/perldoc?overload#Copy_Constructor) kullanabilirsiniz. Ama burada durum böyle değil. – ikegami
Sanırım aşırı yüklenen operatörler dışında nesneyi değişmez yapabilirim. Bu en zarif yaklaşım olabilir gibi görünüyor. – tjwrona1992
Lütfen Perl'i C++ olarak değil Perl olarak kabul edin. Bir şekilde diğer dillerle kullandığınız semantikleri zorlamaya çalışırsanız, dil ile asla mutlu bir ilişkiniz olmayacaktır. –