目录
- 一、程序及输出
- 1.1 指定父类T数据类型
- 1.2 子类T指定父类T数据类型
- 二、分析与总结
一、程序及输出
1.1 指定父类T数据类型
必须要指定出父类中的T数据类型,才能给子类分配内存
正确使用 :
#include<iostream>
using namespace std;
template<class T>
class Base
{
public:
Base() {
cout << typeid(T).name() << endl;
}
T m_A;
};
//必须要指定出父类中的T数据类型,才能给子类分配内存
class Son :public Base<int>
{
};
void test01()
{
Son s1;
}
int main(){
test01();
system("pause");
return EXIT_SUCCESS;
}
输出:
1.2 子类T指定父类T数据类型
#include<iostream>
using namespace std;
template<class T>
class Base2
{
public:
Base2() {
cout << typeid(T).name() << endl;
}
T m_A;
};
template<class T1 ,class T2>
class Son2 :public Base2<T2>
{
public:
Son2()
{
cout << typeid(T1).name() << endl;
cout << typeid(T2).name() << endl;
}
T1 m_B;
};
void test02()
{
Son2 <int, double> s;
}
int main(){
test02();
system("pause");
return EXIT_SUCCESS;
}
输出:
二、分析与总结
在类模板碰到继承的问题时,要指定出父类中的T数据类型,才能给子类分配内存