1.typename和class是一样的
2.定义的时候,函数模板就是在函数上添加template <class 类型参数名>(当然可以有多个参数),里面的变量类型可用T代替。
而类模板就是在类上添加template <class 类型参数名>(当然可以有多个参数),里面的变量类型,函数的参数和返回值类型可用T代替。
3.在使用的时候,函数模板的实例化是在一般调用函数时进行的,根据传入的参数类型自动推导出对应的函数类型,当然也可以显式地实例化;
例如一般是add(a,b);,当然也可以add<int> (a,b);
类模板的实例化则需要在程序中显式地实例化,根据具体的模板参数生成对应的类。
例如:vector<int> v;
4.特别需要指出的是,加入类模板后在类外定义成员函数的语法,要在原来基础上1.在函数上方加上模板的定义2.类名和作用域中间要加上::
例:
template <class 类型参数>
函数类型 类模板名<类型参数>::成员函数名(形参表){...}
函数模板和类模板写法总结
最新推荐文章于 2024-08-09 10:25:03 发布