C++ Primer 5th笔记(chap 16 模板和泛型编程)默认模板实参
生活随笔
收集整理的這篇文章主要介紹了
C++ Primer 5th笔记(chap 16 模板和泛型编程)默认模板实参
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 默認(rèn)模板實(shí)參default template argument
compare 有一個(gè)默認(rèn)模板實(shí)參 less和一個(gè)默認(rèn)函數(shù)實(shí)參 F ()
template <typename T, typename F> =less<T>int compare (const T Svl, const T &v2, F f = F ( ) ) {if (f (vl, v2) ) return -1;if (f (v2, vl) ) return 1;return 0; }bool i = compare (0, 42); // 使用 less;i為-1// 結(jié)果依賴于 iteml 和 item2 中的 isbn Sales data iteml (cin), item2 (cin); bool j compare (iteml, item2, compareIsbn);- 與函數(shù)默認(rèn)實(shí)參一樣, 對于一個(gè)模板參數(shù), 只有當(dāng)它右側(cè)的所有參數(shù)都有默認(rèn)實(shí)參時(shí),
它才可以有默認(rèn)實(shí)參。
1.1 模板默認(rèn)實(shí)參與類模板
無論何時(shí)使用一個(gè)類模板, 我們都必須在模板名之后接上尖括號。 尖括號指出類必須從一個(gè)模板實(shí)例化而來。 特別是, 如果一個(gè)類模板為其所有模板參數(shù)都提供了默認(rèn)實(shí)參,且我們希望使用這些默認(rèn)實(shí)參, 就必須在模板名之后跟一個(gè)空尖括對
template <class T = int> class Numbers { // T 默認(rèn)為 intpublic:Numbers (T v = 0 ) : val (v) {} //對數(shù)值的各種操作private:T val; }Numbers<long double> lots_of_precision; Numbers<> average_precision; / / 空<>表示我們希望使用默認(rèn)類型總結(jié)
以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 16 模板和泛型编程)默认模板实参的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 5th笔记(cha
- 下一篇: C++ Primer 5th笔记(cha