c++學習之類模板與繼承
阿新 • • 發佈:2020-12-29
技術標籤:c++
當類模板碰到繼承時,需要注意一下幾點:
(1)當子類繼承父類是一個類模板時,子類在宣告時,要指定出父類中T的型別
(2)如果不指定,編譯器無法給出子類分配記憶體
(3)如果想靈活指定父類中T的型別,子類也需要變為類模板
示例:
**
//類模板與繼承
#include<iostream>
#include<string.h>
using namespace std;
template<class T1>
class Base
{
T1 obj;
};
template<class T1>
class Son1:public Base<T1>
{
public:
Son1()
{
cout<< "T1的型別為:"<< typeid(T1).name() <<endl;
}
};
template<class T2,class T1>
class Son2:public Base<T1>
{
public:
Son2()
{
cout<< "T1的型別為:"<< typeid(T1).name () <<endl;
cout<< "T2的型別為:"<< typeid(T2).name() <<endl;
}
};
int main()
{
Son1<int>s1; //在例項化子類物件時會指定型別,通過子類型別指定父類型別
Son2<char,int>s2;
return 0;
}