欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

C++ Primer 5th笔记(chap 16 模板和泛型编程)默认模板实参

发布时间:2025/3/21 c/c++ 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C++ Primer 5th笔记(chap 16 模板和泛型编程)默认模板实参 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1. 默认模板实参default template argument

compare 有一个默认模板实参 less和一个默认函数实参 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// 结果依赖于 iteml 和 item2 中的 isbn Sales data iteml (cin), item2 (cin); bool j compare (iteml, item2, compareIsbn);
  • 与函数默认实参一样, 对于一个模板参数, 只有当它右侧的所有参数都有默认实参时,
    它才可以有默认实参。

1.1 模板默认实参与类模板

无论何时使用一个类模板, 我们都必须在模板名之后接上尖括号。 尖括号指出类必须从一个模板实例化而来。 特别是, 如果一个类模板为其所有模板参数都提供了默认实参,且我们希望使用这些默认实参, 就必须在模板名之后跟一个空尖括对

template <class T = int> class Numbers { // T 默认为 intpublic:Numbers (T v = 0 ) : val (v) {} //对数值的各种操作private:T val; }Numbers<long double> lots_of_precision; Numbers<> average_precision; / /<>表示我们希望使用默认类型

总结

以上是生活随笔为你收集整理的C++ Primer 5th笔记(chap 16 模板和泛型编程)默认模板实参的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。