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-name。Incredible<...>::Incredible
引用自身,并且由于MyDerived
不是类模板,因此不合格的查找将在其基类的范围内进行:
MyDerived::MyDerived
: Incredble(params)
{}
如果Incredible
是从属名称,则需要对其进行限定。实际上,您可以简单地使用派生的类型名称来限定基类的注入类名称(h / t Johannes Schaub-litb):
MyDerived::MyDerived
: MyDerived::Incredible(params)
{}
这将在所有情况下都有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句