Templates 类模板和构造函数
模板是向类添加一些特性的好方法,但构造函数有一个问题:它只在模板构造函数和类(作为参数传递)构造函数具有默认形式时才起作用。() 是否可以在cSource2中调用cSource2 ctor,并使用以下内容2?Templates 类模板和构造函数,templates,constructor,d,Templates,Constructor,D,模板是向类添加一些特性的好方法,但构造函数有一个问题:它只在模板构造函数和类(作为参数传递)构造函数具有默认形式时才起作用。() 是否可以在cSource2中调用cSource2 ctor,并使用以下内容2? 如果没有,是否有测试类是否具有默认构造函数的特性?您可以构建一系列super调用,转发构造函数参数: 在cimplementsomestuff中: this(A ...)(A args) // formerly this() { super(args); // etc ..
如果没有,是否有测试类是否具有默认构造函数的特性?您可以构建一系列
super
调用,转发构造函数参数:
在cimplementsomestuff
中:
this(A ...)(A args) // formerly this()
{
super(args);
// etc ...
在c包含某些内容的资源2
:
this(int a) // could be this(A ...)(args), too
{
super(a);
// etc ...
当类像这样继承
类C:Base{}
或像这样模板化类C(Base):Base{}
时,如果不这样做,则在基
类上调用默认构造函数
要调用其他默认构造函数,请在派生构造函数中包括super调用,如:
class C:Base{super(myArguemnts);您的代码}
类C(Base):Base{super(myArguemnts);您的代码}
这可能会变得更棘手,因为您不知道将是什么类型的Base,因此您可能不知道它将接受什么类型的参数(如果有)
如果需要,您可以像这样转发任意扩充
this(Args…)。必须测试是否存在默认的ctor。
this(int a) // could be this(A ...)(args), too
{
super(a);
// etc ...