【问题标题】:Constructor Inheritance in DD中的构造函数继承
【发布时间】:2014-05-29 23:35:37
【问题描述】:

是否可以在 D 中继承构造函数?

abstract class A {
    this(int a) {
        // ...
    }
}

class B: A {}

void main() {
    B b = new B(2); // Use A's constructor
}

我知道我可以通过 super(param) 在 B 中调用 A 的构造函数,但是会有很多类在进行,所以我想知道是否有更自动化的方法来做这件事。

【问题讨论】:

    标签: inheritance constructor polymorphism d


    【解决方案1】:

    我认为它没有语言功能,但您可以将其实现为辅助 mixin:

    https://github.com/CyberShadow/ae/blob/29aa5dde35677a38dc8f6315dc38d7ecd437d967/utils/meta/misc.d#L219-L267

    【讨论】:

    • 顺便说一句,该助手是否与 ref 和其他限定符一起使用?一个经过良好测试的版本在火卫一中非常受欢迎。
    • 嗯,它只是使用ParameterTypeTuple,所以我认为它没有。我想我是在模板化构造函数出现问题时实现的。
    • 似乎链接已“死”
    猜你喜欢
    • 2015-11-08
    • 1970-01-01
    • 2013-06-01
    • 2023-04-03
    • 2015-06-21
    • 2018-10-30
    相关资源
    最近更新 更多