我一直在和Moose玩耍,对它有一种感觉。我想要一个纯虚函数的示例,例如C++,但以Moose的话来说(特别是以C++的方式)。我知道,即使Moose施加了比普通Perl更严格的模型,也仍然存在不止一种方法来执行我要的操作(通过方法修饰符或SUPER::调用)。这就是为什么我特意要求一个尽可能类似于C++的实现。至于“为什么?”这个限制?通常是出于好奇,但也计划以Moose为中心,将大多数C++代码移植到带有Moose的Perl中。

最佳答案

我可以想到使用角色而不是子类的这种方式:

{
    package AbstractRole;
    use Moose::Role;
    requires 'stuff';
}

{
    package Real;
    use Moose;
    with 'AbstractRole';
}

这将产生编译错误,因为Real没有定义内容。

现在,将东西方法添加到Real将使其起作用:
{
    package Real;
    use Moose;
    with 'AbstractRole';

    sub stuff { print "Using child function!\n" }
}

关于c++ - Moose与Perl一起用于OOP的C++用法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1341903/

10-09 05:23