三、函数模板注意事项

**注意事项:**

  • 自动类型推导必须推导出一致的数据类型T,才可以使用
  • 模板函数必须要确定出T的数据类型,才可以使用
  1. #include <iostream>
  2. using namespace std;
  3. template<typename T> // 声明一个模板
  4. void mySwap(T& t1,T& t2 ){
  5. T temp = t1;
  6. t1 = t2;
  7. t2 = temp;
  8. }
  9. int main(){
  10. int a = 10;
  11. double b = 20;
  12. // 采用自动类型推导调用模板函数
  13. mySwap(a,b); // 推导出的a,b的数据类型不相同,错误!!
  14. cout << "a = " << a << endl;
  15. cout << "b = " << b << endl;
  16. system("pause");
  17. return 0;
  18. }

image.png

  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. template<typename T>
  5. void func(){
  6. cout << "func函数的调用" << endl;
  7. }
  8. int main(){
  9. func(); // 没有确定出T的数据类型,错误!
  10. return 0;
  11. }

image.png