c++中模板类的目的是啥

Posted

技术标签:

【中文标题】c++中模板类的目的是啥【英文标题】:what is the purpose of template class in c++c++中模板类的目的是什么 【发布时间】:2017-10-28 09:17:23 【问题描述】:

我不明白模板类的用途是什么? 我是 C++ 新手。我能得到详细的解释吗?

// constructing unordered_sets
#include <iostream>
#include <string>
#include <unordered_set>

template<class T>
T cmerge (T a, T b)  T t(a); t.insert(b.begin(),b.end()); return t; 

std::unordered_set<std::string> second ( "red","green","blue" );    // init list
std::unordered_set<std::string> third ( "orange","pink","yellow" ); // init list
std::unordered_set<std::string> fourth ( second );
std::unordered_set<std::string> fifth ( cmerge(third,fourth) );       // move

【问题讨论】:

Read a good beginners book or two. 你能给我一些建议吗 他做到了。这是一个链接。 【参考方案1】:

C++ 模板类/函数基本上是一个通用类/函数,即,您只需定义一次类或函数,就可以将这个定义用于不同的数据类型(int、char、float 等)。 例如:-

#include <iostream>
using namespace std;

// One function works for all data types.  This would work
// even for user defined types if operator '>' is overloaded
template <typename T>
T myMax(T x, T y)

   return (x > y)? x: y;


int main()

  cout << myMax<int>(3, 7) << endl;  // Call myMax for int
  cout << myMax<double>(3.0, 7.0) << endl; // call myMax for double
  cout << myMax<char>('g', 'e') << endl;   // call myMax for char

  return 0;

【讨论】:

以上是关于c++中模板类的目的是啥的主要内容,如果未能解决你的问题,请参考以下文章

实验2:函数重载函数模板简单类的定义和实现

Sun Studio C++ 中模板类的模板友元失败

C++模板类和类模板

C++模板编程中只特化模板类的一个成员函数(花样特化一个成员函数)

C++模板类的继承

在 C++ 中使用具有相同类的多个模板