C++中模板的使用

发布时间:2024年01月24日

如下是一个函数模板和类模板使用的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;
}

文章来源:https://blog.csdn.net/yandong666/article/details/135795629
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。