#include <iostream>
#include <string>
using namespace std;
/************************************************************************/
/* 类模板与继承
1.当子类继承的父类是一个模板时,子类在声明的时候需要指定父类中T类型(否则编译器不知道子类对象大小,无法分配内存空间)
2.若想灵活指定出父类中的T类型,子类也需要声明为类模板
/************************************************************************/
template <class T>
class Base{
public:
T m_mem;
};
//1.指定父类中的T类型,否则报错
class Son:public Base<int>
{
};
void test1()
{
Son s1;
}
//2.灵活指定父类中T类型,子类声明为类模板
template <class T1, class T2>
class Son1:public Base<T2>
{
public:
Son1()
{
cout<<"T1的数据类型"<<typeid(T1).name()<<endl;
cout<<"T2的数据类型"<<typeid(T2).name()<<endl;
}
T1 m_Name;
};
void test2()
{
Son1<string, int> s1;
}
int main()
{
test1();
test2();
return 0;
}
C++ 类模板与继承
最新推荐文章于 2025-04-27 17:05:42 发布