C 類模板的派生

2021-07-05 20:11:22 字數 1277 閱讀 6510

基礎知識:

類模板的派生

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...