函数模板的声明语法格式如下:
template <typename 标识符>
返回值类型 函数名(形参表)
{
//函数体
}
以max()为例子
template <typename T>
T mymax( const T a, const T b)
{
return a > b ? a : b;
}
具体代码如下:
// k.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
template <typename T>
T mymax( const T a, const T b)
{
return a > b ? a : b;
}
int _tmain(int argc, _TCHAR* argv[])
{
int nA = 2;
int nB = 3;
cout<<nA<<"和"<<nB<<"中,比较大的是:"<<mymax(nA, nB)<<endl;
float fA = 2.2;
float fB = 3.3;
cout<<fA<<"和"<<fB<<"中,比较大的是:"<<mymax(fA, fB)<<endl;
return 0;
}
类模板的声明语法格式:
template <typename T>
class 类名
{
//类的定义
};
例子代码:
// k.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
template <typename T>
class compare
{
public:
compare(T a, T b)
: m_a(a) , m_b(b)
{
}
public:
T min()
{
return m_a > m_b ? m_b : m_a;
}
T max()
{
return m_a > m_b ? m_a : m_b;
}
private:
T m_a;
T m_b;
};
int _tmain(int argc, _TCHAR* argv[])
{
compare<int> intcompare(2,3);
cout<<intcompare.max()<<"大于"<<intcompare.min()<<endl;
return 0;
}