体会:继承是数据的复制、模版是代码的复制。 模板函数在编译完成之后,会生成对应参数数类型的函数; 继承是对虚表、数据的复制,其中也涉及到使用虚函数继承产生多态时,虚表函数的替换;
template<class T> void Sort(T arr, int nLength) { int i; int k; for (i = 0;i < nLength - 1;i++) { for (k = 0;k < nLength - 1 - i;k++) { if (arr[k] > arr[k + 1]) { int temp = arr[k]; arr[k] = arr[k + 1]; arr[k + 1] = temp; } } } } /* 测试: char arr[] = { 2,6,1,8,4,3 }; Sort(arr, 6); */ template<class T, class M> struct Base { T x; T y; M a; M b; T Max() { if (x > y) { return x; } else { return y; } } M Min() { if (a < b) { return a; } else { return b; } } }; /* 测试: Base<int, char> base; base.x = 10; base.y = 20; base.a = 1; base.b = 2; int x1 = base.Max(); int y = base.Min(); */参考:滴水视频