|
发表于 2020-7-15 11:27:27
|
显示全部楼层
举个例子
- #include <cstdio>
- #include <Windows.h>
- // template函数
- template<class T>
- T add(T a, T b)
- {
- return (T)(a + b);
- }
- // template类
- template<class Type>
- class Data
- {
- public:
- Data(Type d)
- {
- data = d;
- }
- Type GetData()
- {
- return data;
- }
- private:
- Type data;
- };
- int main()
- {
- int n = add<int>(2, 4); // 此时T相当于int
- double f = add<double>(1.4, 3.5); // 此时T相当于double
- printf("%d\n", n); // 输出:6
- printf("%f\n", f); // 输出:4.9
- // template还可以进行类型推断
- n = add(2, 4); // 因为2和4都是int,所以编译器自动认为T就是int
- printf("%d\n", n); // 输出:6
- Data<int> nData(3);
- printf("%d\n", nData.GetData()); // 输出:3
- Data<double> fData(6.5);
- printf("%f\n", fData.GetData()); // 输出:6.5
- system("pause");
- return 0;
- }
复制代码 |
|