模板的继承

下面有关函数模板和类模板的说法正确的有?

A. 函数模板的实例化是由编译程序在处理函数调用时自动完成的

B. 类模板的实例化必须由程序员在程序中显式地指定

C. 函数模板的模板参数仅针对参数类型

D. 类模板的模板参数仅针对数据成员和成员函数类型

C: 函数模版还可以将 函数返回值类型 作为模版参数。

D: 类模板还可以针对 继承的基类类型 作为模板参数


类模板和类模板之间、类模板和类之间可以互相继承。它们之间的派生关系有以下四种情况:

  • 类模板继承类模板
  • 类模板继承模板类
  • 类模板继承普通类
  • 普通类继承模板类
//==============================================1、类模板继承类模板
template <typename T1, typename T2>
class A
{
    T1 x;
    T2 y;
};
template <typename T1, typename T2>
class B : public A<T2, T1>
{
    T1 x1;
    T2 y2;
};
template <typename T1,T2, T3>
class C : public B<T1, T3>
{
    T2 x3;
};
//==============================================2、类模板继承模板类
template <typename T>
class D : public A<int, double> //具体化的模板类
{
    T x4;
};
//==============================================3、类模板继承普通类
class E
{
    int x4;
};
template <typename T>
class F : public E
{
    T X5;
};
//==============================================4、普通类继承模板类
class H : public F<int>
{
    int h;
};
文章作者: 极简
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 后端技术分享
C/C++
喜欢就支持一下吧