![]() |
1
3
A<B<int>与A<C>的类型不同,即使C是从B<int>派生的。 因此,类型A<C>*的构造函数C的参数与构造函数B<int>请求的参数A<B<int>不兼容。 后期编辑: 使用模板化构造函数:
然而,这个问题太抽象,无法给出解决方案… |
![]() |
2
4
首先,这是:
是错误的。正确的形式是:
这完全是另一回事。现在,转到问题的关键。
C++模板不是变体。特别是,给定两个类
所以这是非法的(而且允许它也存在实现问题)。此外,也没有办法选择方差的C++模板。每个模板实例化都只是一个不同的类,它的基类只是定义中基类列表中特定列出的那些。它与同一类模板的其他实例化没有特殊关系。
因此,在你的情况下,
|
![]() |
TCD · 标准库非类型模板类是否显式实例化? 2 年前 |
![]() |
sovesti · 参数较少的模板函数中的演绎 2 年前 |
![]() |
KiraHoneybee · 具有构造函数参数的模板化类 2 年前 |
![]() |
Seymore Glass · 模板不工作的默认参数 2 年前 |
![]() |
Alexander Daum · 模板参数中对模板类型的引用 6 年前 |
![]() |
ledonter · 为什么注入的类名有时不被视为类模板中的模板名? 6 年前 |