C++ Primer 5th笔记(chap 16 模板和泛型编程)类模板特例化
生活随笔
收集整理的這篇文章主要介紹了
C++ Primer 5th笔记(chap 16 模板和泛型编程)类模板特例化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 定義一個特例化版本, 模板參數為 Sales data
// 打開std 命名空間, 以便特例化 std::hash namespace std {template struct hash<Sales data> { // 用來散列一個無序容器的類型必須要定義下列類型typedef size_t result_type;typedef Sales_data argument_type; / / 默認情況下, 此類型需要==size_t operator ( ) (const Sales_data & s ) const;//類使用合成的拷貝控制成員和默認構造函數size_t hash<Sales_data>::operator () (const Sales_data& s ) const{ return hash<string> ( ) (s.bookNo) ^hash<unsigned> ( ) (s.units_sold) ^hash<double> ( ) (s.revenue);} } //關閉 std 命名空間; 注意: 右花括號之后沒有分號2. 聲明特殊實例 hash<Sales_data>是 Sales_data 的友元
template <class T> class std::hash; // 友元聲明所需要的 class Sales_data {friend class std::hash<Sales_data>;// 其他成員定義, 如前 }3. unordered_multiset<Sales_data> SDset;
總結
以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 16 模板和泛型编程)类模板特例化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 5th笔记(cha
- 下一篇: C++ Primer 5th笔记(cha