调用基类构造函数而不命名其类

vlad_tepesch
class MyDerived: public Incredble<Difficult< And<Complicated, Long>>, And<Even, Longer>, BaseClass, Name>
{
public:
  MyDerived();
}


MyDerived::MyDerived
: ???(params)
{}

有什么方法可以调用基本构造函数而无需编写其全名,也可以不键入typeeffing它?

原因很明显是避免代码重复,并且如果基类模板参数中的详细信息发生更改,则会引入多个位置进行更改。

第2级:

template <uint32 C>
class MyDerived: public Incredble<Difficult< And<Complicated, Long>>, And<Even, Longer>, BaseClass, Name>
{
public:
  MyDerived();
}

template <uint32 C>
MyDerived::MyDerived<C> 
: ???(C)
{
}
巴里

您可以使用Injection-class-nameIncredible<...>::Incredible引用自身,并且由于MyDerived不是类模板,因此不合格的查找将在其基类的范围内进行:

MyDerived::MyDerived
: Incredble(params)
{}

如果Incredible从属名称,则需要对其进行限定。实际上,您可以简单地使用派生的类型名称来限定基类的注入类名称(h / t Johannes Schaub-litb):

MyDerived::MyDerived
: MyDerived::Incredible(params)
{}

这将在所有情况下都有效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从派生类构造函数调用基类构造函数

基类的构造函数不能调用吗?

在成员构造函数之后调用基类构造函数

在调用基类构造函数时声明默认构造函数

从派生复制构造函数调用基类的移动构造函数

这时基类的构造函数在构造函数中被调用

从超类构造函数调用基类重写方法

从Java中的派生类调用基类构造函数

从模板派生类调用模板基类的构造函数

在声明派生类时调用基类的构造函数

在python中构造类而不直接调用构造函数

为什么不隐式调用基类的复制构造函数?

派生类的构造函数可以比其基类的构造函数具有更多的参数吗?

如何模拟抽象类并调用其构造函数?

在派生类 C++ 的构造函数中调用基类的构造函数

如何在Scala中从派生类辅助构造函数调用辅助基类构造函数?

是否可以从基类构造函数调用派生类构造函数?

让隐式派生类构造函数调用基类构造函数

C ++派生类构造函数调用基类构造函数错误

基类构造函数为什么不设置值?

自动实现一个构造函数,该构造函数调用特定的基类构造函数

在基类构造函数中调用虚拟方法

如何在多级继承中调用基类构造函数?

在C ++中调用基类模板构造函数

是否会自动调用基类的构造函数?

C ++:在基类的构造函数中调用重写的方法

如何避免调用基类构造函数

部分类构造函数不调用基类

调用构造函数后丢失基类的数据成员