C++中模板的使用

如下是一个函数模板和类模板使用的demo, 对于函数模板来说,模板的数据类型针对函数中的入参,对于类模板来说,模板的数据类型针对类中的成员变量,具体的数据类型,由传入的数据决定。

模板和调用在同一个文件中:

// 模板函数
template <typename T>
T max(T a, T b) {
  return (a > b) ? a : b;
}

// 模板类
template <typename T>
class MyClass {
public:
  T value;

  MyClass(T value) : value(value) {}

  T getValue() {
    return value;
  }
};

// 主函数
int main() {
  // 调用模板函数
  int max_int = max(10, 20);
  double max_double = max(3.14, 2.71);

  // 创建模板类对象
  MyClass<int> my_int(10);
  MyClass<double> my_double(3.14);

  // 获取模板类对象的值
  int int_value = my_int.getValue();
  double double_value = my_double.getValue();

  // 打印结果
  cout << "最大整数:" << max_int << endl;
  cout << "最大浮点数:" << max_double << endl;
  cout << "模板类整数:" << int_value << endl;
  cout << "模板类浮点数:" << double_value << endl;

  return 0;
}

模板和调用在不同文件中:

头文件
// header.h
// 类模板
template <typename T>
class MyClass {
public:
  T value;

  MyClass(T value) : value(value) {}

  T getValue() {
    return value;
  }
};

// 函数模板
template <typename T>
T max(T a, T b) {
  return (a > b) ? a : b;
}


调用文件

// main.cpp
#include "header.h"

int main() {
  // 调用类模板
  MyClass<int> my_int(10);
  MyClass<double> my_double(3.14);

  // 调用函数模板
  int max_int = max(10, 20);
  double max_double = max(3.14, 2.71);

  // 打印结果
  cout << "模板类整数:" << my_int.getValue() << endl;
  cout << "模板类浮点数:" << my_double.getValue() << endl;
  cout << "最大整数:" << max_int << endl;
  cout << "最大浮点数:" << max_double << endl;

  return 0;
}

相关推荐

  1. C++模板使用

    2024-01-24 13:50:03       57 阅读
  2. c++】模板使用

    2024-01-24 13:50:03       47 阅读
  3. C++模板方法模式

    2024-01-24 13:50:03       25 阅读
  4. C++模板---下

    2024-01-24 13:50:03       34 阅读
  5. C++模板(二)

    2024-01-24 13:50:03       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-24 13:50:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-24 13:50:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-24 13:50:03       87 阅读
  4. Python语言-面向对象

    2024-01-24 13:50:03       96 阅读

热门阅读

  1. Python之list

    2024-01-24 13:50:03       43 阅读
  2. 行内样式css不生效

    2024-01-24 13:50:03       60 阅读
  3. 1.23 力扣图论

    2024-01-24 13:50:03       58 阅读
  4. LeetCode 49 字母异位词分组

    2024-01-24 13:50:03       63 阅读
  5. 文心一言 VS ChatGPT

    2024-01-24 13:50:03       55 阅读
  6. ubuntu下使用python3的venv虚拟环境

    2024-01-24 13:50:03       58 阅读
  7. C语言大师(8)异常处理

    2024-01-24 13:50:03       48 阅读
  8. 查看现有的conda源

    2024-01-24 13:50:03       60 阅读
  9. HBase学习五:运维排障之宕机恢复

    2024-01-24 13:50:03       70 阅读