template类模板的简单介绍
先说一个例子来说明什么时候用类模板
#include<iostream>
using namespace std;
class Test
{
public:
Test(int a, int b):a(a),b(b)
{
cout << this->a << " " << this->b << " " << this->a + this->b << endl;
}
private:
int a;
int b;
};
int main()
{
Test test1(10, 20); //正常编译运行 结果为 10 20
//因为int类型原因,数值只保留整数部分,这里编译结果仍然是 10 20
Test test2(10.33, 20.33);
return 0;
}
以上例子如果要创建一个float类型的类对象,那么需要写多一个重载构造函数
Test(float a,float b):a(a),b(b);
那么如果我还要创建多个不同类型的类对象呢,这时候为了减少代码量(为了偷懒),就有了类模板的概念。
编译器从类模板可以自动生成多个类,避免重复编写,从而减少了编写多个形式和功能相似的函数
用上类模板的代码如下
#include<iostream>
using namespace std;
template <typename T>
class Test
{
public:
Test(T a, T b):a(a),b(b)
{
cout << this->a << " " << this->b << " " << this->a + this->b << endl;
}
private:
T a;
T b;
};
int main()
{
Test<int> test1(10, 20);
Test<float> test2(10.33, 20.33);
Test<string> test3("Hello", " World");
return 0;
}
然后呢,就可以使用类模板来编写链表的操作了