基礎知識:
類模板的派生
1) 普通類派生類模板
2) 類模板也可以派生類模板,這時,派生類模板的參數列中應包含基類模板的引數。
3) 模板類與普通類一樣也具有多繼承,即模板類之間允許有多繼承。
可以從類模板派生出新的類,既可以派生類模板,也可以派生非模板類。派生方法:
⑴ 從類模板派生類模板可以從類模板派生出新的類模板,它的派生格式如下例所示:
template
class base
;template
class derive:public base
;與一般的類派生定義相似,只是在指出它的基類時要綴上模板引數,即base。
⑵ 從類模板派生非模板類 可以從類模板派生出非模板類,在派生中,作為非模板類的基類,必須是類模板例項化後的模板類,並且在定義派生類前不需要模板宣告語句:template。例如:
template
class base
;class derive:public base
;在定義derive類時,base已例項化成了int型的模板類。
示例自定義實現的stack和繼承的deque
#include using namespace std;
#include #include using namespace std;
templateclass stack
stack() :_top(0), _size(20)
void push(const t element)
t pop()throw (out_of_range)
t& top()
virtual ~stack() };
templateclass deque : public stack
deque(int size) :_tail(0), stack(size){}
t& getfirst()
t& getlast() };
int main()
catch (exception &e)
trycatch (exception &e)
return 0;
}
執行結果:
類模板派生
1 普通類派生類模板 2 類模板也可以派生類模板,這時,派生類模板的參數列中應包含 基類模板的引數。3 模板類與普通類一樣也具有多繼承,即 模板類之間允許有多繼承。可以從類模板派生出新的類,既可以派生類模板,也可以派生非模板類。派生方法 從類模板派生類模板可以從類模板派生出新的類模板,它的派生格式如...
模板類派生
從模板類派生乙個普通類 includeusing namespace std templateclass a public void printa protected t a 子模板類派生時,需要具體化模板類,c 編譯器需要知道 父類的資料型別具體是什麼樣子的 要知道父類所佔的記憶體大小是多少 cl...
類模板與派生
模板也可以繼承。分為以下幾種 類模板a template classt1,class t2 classa 由類模板a派生的類模板b template classt1,class t2 classb public a 由類模板b派生的類模板c template class t classc publi...