ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++11 模板学习总结

2020-10-25 17:31:34  阅读:108  来源: 互联网

标签:11 const C++ 参数 template 类型 return 模板


目录

概念

函数模板(function template)

template <typename T>
int compare(const T &v1, const T &v2) {
  if (v1 < v2) return -1;
  if (v2 < v1) return 1;
  return 0;
}

template <unsigned N, unsigned M>
int compare(const char (&p1)[N], const char (&p1)[N]) {
  return strcpm(p1, p2);
}
  • 类型模板参数(type parameter):类型说明符,T 为类型参数
  • 非类型模板参数(nontype parameter):表示值而不是类型
    • 非类型模板参数的模板实参必须是常量表达式

类模板(class template)

  • 编译器不能为类模板推断模板参数,因此需要在代码中提供显式模板实参(explicit template argument)列表,它们被绑定到模板参数
  • 类模板的名字不是一个类型名,类模板是用来实例化类型的,而后者总是包含模板参数的;例外:在类模板自己的作用域中可以直接使用类模板名字(当作类型名)而不提供模板实参
  • 类模板的成员函数具有和类模板相同的模板参数;默认情况下,一个类模板的成员函数只有当程序用到它时才进行实例化

标签:11,const,C++,参数,template,类型,return,模板
来源: https://www.cnblogs.com/wangzhiyi/p/13874202.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有