C++——模板编程(P1)

C++——模板编程(P1),第1张

模板 P1

模板属于静态多态,作用于编译阶段。


C++抽象机制
  1. 面向对象编程

  2. 模板编程——编译时间变长

    ●泛型编程:注重于“通用概念”的抽象,设计通用的类型或算法,不需要过于关心编译器如何生成具体的代码。


    ●元编程:注重于设计模板推导时的选择和迭代,通过模板技巧设计程序。


C++为什么要引入模板?
  1. 宏定义只是简单的替换,很多事情做不了。


  2. 如果没有模板,那stl容器就需要实现很多遍。


函数模板
template 
void print(T t) {
    cout << "call template function" << endl;
}
函数模板特化
template <>
void print(int n) {
    cout << "call template int function" << endl;
}

tips:

  1. 没有调用,模板就不会进行实例化。


  2. auto关键字对模板返回值的推导仅在C++14及以上版本支持,在C++11中可以使用decltype关键字进行替代。


    例子如下:

template 
auto add(T a, U b) {//仅在C++14及以上版本支持
    return a + b;
}
template 
auto add(T a, U b)->decltype(a + b) {//C++11可以用decltype进行替代
    return a + b;
}

————————————————————————————————————————————

本人倾向于先将学到的知识写成博客分享出来,之后在进行整理。


如果文章不见了,大概率被整合到了其他相关文章当中。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/568842.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存