函数模板&类模板
#include <iostream> #if 0//函数模板 template<typename T> T max(T a, T b, T c)//函数模板 { if (a < b) { a = b; } if (a < c) { a = c; } return c; } #endif template<class T> class Compare { public: T max(T a, T b); T min(T a, T b); }; template<class T> T Compare<T>::max(T a, T b) { return a < b ? b : a; } template<class T>//在类外定义必须制定此种格式 T Compare<T>::min(T a, T b) { return a < b ? a : b; } int main() { #if 0 int num = max(1, 2, 3); //float num2 = max(1.1, 2.3, 4.5);//默认double double num3 = max(1.1, 2.3, 4.5); long long num4 = max(1, 2, 3); #endif Compare<int> cint; std::cout << cint.max(1, 2) << std::endl; Compare<double> cdouble; std::cout << cdouble.min(1.1, 2.3) << std::endl; getchar(); return 0; }