/* c++类模板 继承 详解 */
/* 类模板和类模板之间、类模板和类之间可以互相继承。它们之间的派生关系有以下四种情况 */
/* 1)、类模板继承类模板
2)、类模板继承模板类
3)、类模板继承普通类
4)、普通类继承模板类*/
#include <iostream>
using namespace std;
//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 T>
class C : public B<T, T>
{
T 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、普通类继承模板类
template <typename T>
class G
{
G g;
};
class H : public F<int>
{
int h;
};
int main()
{
//1、类模板继承类模板
C<int> c; //由派生的具体类型反推 基类 模板类型 C<int> B<int, int> A<int, int>
B<int, char *> b; //由派生的具体类型反推 基类 模板类型 B<int, char*>, A<char*, int>
//2、类模板继承模板类
D<float> d; //生成D<float> 和 A<int, double> 模板类
//3、类模板继承普通类
F<bool> f; //生成 F<bool>
//4、普通类继承模板类
H g; //生成 F<int> 模板类
return 0;
}
c++类模板与继承详解
最新推荐文章于 2024-07-19 23:45:00 发布