第16章 模板與泛型程式設計 10

2021-06-02 16:45:58 字數 1033 閱讀 7618

16.4.4 queue和queueitem的友元宣告

1. 將類模板設為友元

template class queueitem

type item;

queueitem *next;

friend class queue;

};

2. queue輸出操作符

template ostream& operator<<(ostream &os, const queue&q)

os<<">";

return os;

}

3. 將函式模板設為友元

template class queueitem

friend class queue;

friend ostream &operator<< (ostream &os, const queue&q);

};

template class queue

queue(const queue &q):head(0), tail(0)

queue& operator=(const queue&);

~queue()

type& front()

const type &front() const

void push(const type &);

void pop();

bool empty() const

friend ostream &operator<< (ostream &os, const queue&q);

private:

queueitem*head;

queueitem*tail;

void destroy();

void copy_elems(const queue&);

};

4. 型別依賴性與輸出操作符

繫結到queue且使用queue輸出操作符的每種型別本身必須有輸出操作符。

第16章 模板與泛型程式設計 13

16.5 乙個泛型控制代碼類 16.5.1 定義控制代碼類 ifndef handle h define handle h include stdafx.h include using namespace std templateclass handle t operator t operator ...

第16章 模板與泛型程式設計 15

16.6.2 類模板的特化 1.定義類特化 template class queue const string front const void push const char void pop bool empty const friend ostream operator ostream os,...

第16章 模板與泛型程式設計 3

16.1.3 模板型別形參 型別形參由關鍵字class或typename後接說明符構成。在模板形參表中,這兩個關鍵字具有相同的含義,都指出後面所接的名字表示乙個型別。模板型別形參可作為型別說明符用在模板中的任何地方,與內建型別說明符或類型別說明符的使用方式完全相同。具體而言,它可以用於指定返回型別或...