学习C++模板时练习的代码。
模板函数:
template<typename T>
void swapNum(T &a, T &b)
{
T temp;
temp = b;
b = a;
a = temp;
}
调用的时候:
int aa = 5, bb = 6;
swapNum(aa, bb);
cout << aa << "\t" << bb << endl;
模板类相对复杂,注意3点:
(1)必须将类中方法的声明和定义都写在头文件中,如果按照一般的类,将类方法的定义放在.cpp文件,则编译出错。
(2)类中每个方法的定义前都要加
template<typename T>
(3)类中方法定义要说明模板参数:
T rect<T>::calcArea()
#pragma once
template<typename T>
class rect
{
public:
rect(T length, T height);
T calcArea();
T calePerimeter();
private:
T m_length;
T m_height;
};
template<typename T>
rect<T>::rect(T length,T height)
{
m_length = length;
m_height = height;
}
/**
* 面积方法实现
*/
template<typename T>
T rect<T>::calcArea()
{
return m_length * m_height;
}
/**
* 周长方法实现
*/
template<typename T>
T rect<T>::calePerimeter()
{
return (m_length + m_height) * 2;
}