C++类模板、函数模板
类模板的声明需要template<typename 类型参数> ,等于C#中的泛型类,如List<T>。
template <typename T> class Complex{ public: //构造函数 Complex(T a, T b) { this->a = a; this->b = b; } //运算符重载 Complex<T> operator+(Complex &c) { Complex<T> tmp(this->a+c.a, this->b+c.b); return tmp; } private: T a; T b; }
函数模板的声明也需要template<typename 类型参数>,等于C#中的泛型方法,如EF中的DBContext.Set<T>()。
template<typename T> //声明一个模板,告诉编译器后面代码中紧跟的T不要报错,T是一个通用数据类型 void MySwap(T &a, T &b) { T temp = a; a = b; b = temp; }