(1)函数模板
- 参考:C++函数模板5分钟入门教程
- 在C++中,数据的类型也可以通过参数来传递,在函数定义时可以不指明具体的数据类型,当发生函数调用时,编译器可以根据传入的实参自动推断数据类型。这就是类型的参数化。值(Value)和类型(Type)是数据的两个主要特征,它们在C++中都可以被参数化。
- 模板函数的语法:
- 简单的例子,通过模板可以少写很多"差不多的函数"
(2)类模板
- 类模板的语法
- 类模板:类函数的定义与类的声明
- 类模板创建对象
- 简单的Demo
#include <iostream>
template <typename T1, typename T2>
class Point {
public:
Point(T1 x, T2 y):
m_X(x),
m_Y(y){
};
T1 getX() const;
private:
T1 m_X;
T2 m_Y;
};
template <typename T1, typename T2>
T1 Point<T1, T2>::getX() const
{
return m_X;
}
int main() {
Point<float, int> p1(10.5, 20);
std::cout << p1.getX() << std::endl;
Point<float, int> *p2 = new Point<float, int>(10.2, 20);
std::cout << p2->getX() << std::endl;
return 0;
}