个人知识库 个人知识库
首页
关于
  • C语言
  • CPlusPlus
  • Linux
  • PHP
  • Nginx
  • MySQL
  • Redis
  • Docker
  • Kubernetes
  • SRS
阅读
常用工具
  • 分类
  • 标签
  • 归档
GitHub

Agnes001

坚持是一件很伟大的事业
首页
关于
  • C语言
  • CPlusPlus
  • Linux
  • PHP
  • Nginx
  • MySQL
  • Redis
  • Docker
  • Kubernetes
  • SRS
阅读
常用工具
  • 分类
  • 标签
  • 归档
GitHub
  • C语言

  • CPlusPlus

    • 基础特性

      • 枚举
      • 字符指针
    • vs2019设置
    • C++11特性

    • 并发编程

    • 引用
    • 类和对象
    • 友元和运算符重载
    • 继承
    • 继承和多态
    • 模板
      • 1 模板函数
        • 1.1 函数模板与函数重载
        • 1.2 编译器对模板机制剖析
      • 2 模板类
    • C++基础总结
    • 类型转换
    • 异常
    • 容器
    • 算法
    • C++程序设计
    • C++ Primer总结
    • 编程技巧
    • 标准库体系结构与内核分析
    • 设计模式
    • cmake配置C++工程
    • libcurl的使用总结
    • web开发框架--drogon
    • log4cplus使用
    • C++数据类型
    • 函数
    • 线程
    • 进程
    • 文件操作
    • 日常问题记录
    • Cpp案例程序
    • 多线程
    • 侯捷c++11新特性
    • 侯捷stl
  • Lua技术栈

  • edoyun

  • 内存管理

  • 数据结构

  • 网络编程

  • Linux

  • 池化技术

  • 操作系统

  • python

  • 编程技术
  • CPlusPlus
Agnes001
2022-01-04

模板

泛型编程的语言支持机制就是模板——参数化类型。

# 1 模板函数

调用过程是,先将函数模板实例化为函数,然后再发生函数调用。

# 1.1 函数模板与函数重载

普通函数会进行隐式的数据类型转换, 函数模板不提供隐式的数据类型转换,必须是严格的匹配。

  1. 当函数模板和普通函数都符合调用时,优先选择普通函数
  2. 若显示使用函数模板,则使用<> 类型列表
  3. 如果函数模板产生更好的匹配,使用函数模板

# 1.2 编译器对模板机制剖析

  1. 编译器并不是把函数模板处理成能够处理任意类的函数
  2. 编译器从函数模板通过具体类型产生不同的函数
  3. 编译器会对函数模板进行两次编译,在声明的地方对模板代码本身进行编译;在调用的地方对参数替换后的代码进行编译。

# 2 模板类

模板类派生普通类 子类从模板类继承的时候,需要让编译器知道父类的数据类型具体是什么(数据类型的本质:固定大小内存块的别名)

模板类派生模板类 无需指定模板T类型

实现模板方法建议在同一个文件.h中完成

编辑此页
#template
继承和多态
C++基础总结

← 继承和多态 C++基础总结 →

Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式