class MyDerived: public Incredble<Difficult< And<Complicated, Long>>, And<Even, Longer>, BaseClass, Name>
{
public:
MyDerived();
}
MyDerived::MyDerived
: ???(params)
{}
有没有什么方法可以调用基本构造函数而无需编写其全名且无需对其进行类型定义?
原因显然是为了避免代码重复,并在基类模板参数中的细节发生变化时引入多个位置来更改。
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)
{
}
你可以使用注入类名 https://stackoverflow.com/q/25549652/2069064. Incredible<...>::Incredible
指的是它自己,并且因为MyDerived
不是类模板,非限定查找将在其基类的范围内查找:
MyDerived::MyDerived
: Incredble(params)
{}
If Incredible
is a 依赖的名称,那么您需要对其进行限定。实际上,您可以简单地使用派生类型名称来限定基类的注入类名 (h/t 约翰内斯·绍布利特 https://stackoverflow.com/users/34509/johannes-schaub-litb):
MyDerived::MyDerived
: MyDerived::Incredible(params)
{}
这在所有情况下都有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)