3
假设我有一个幸福的引用/对象$a
和$b
,各内部存储为hashref并具有:重载运营商
$a->{_x}
$b->{_x}
是有可能过载的算术运算,所以当我将做到这一点:
my $c = $a + $b;
我将有一个幸福的参考$c
与$c->{_x}
等于$a->{_x} + $b->{_x}
?
假设我有一个幸福的引用/对象$a
和$b
,各内部存储为hashref并具有:重载运营商
$a->{_x}
$b->{_x}
是有可能过载的算术运算,所以当我将做到这一点:
my $c = $a + $b;
我将有一个幸福的参考$c
与$c->{_x}
等于$a->{_x} + $b->{_x}
?
当然。只需使用您惯用的构造函数为+
重载的子类中的所需类的新对象,并将其值设置为该总和(或其他任何您想要的值)即可。
假设你有new
构造函数初始值作为参数,那会是沿路线的东西:
sub plus {
my $self = shift;
my $right = (shift or 0);
return MySuperNumberObject->new($self->{_x} + $right);
};
use overload '+' => \+