1. 程式人生 > 其它 >c++學習之類模板與繼承

c++學習之類模板與繼承

技術標籤: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; }

在這裡插入圖片描述