做网站方面,如何自己做app的软件,2018年主流网站开发语言,设计界面一、函数模板
C另一种编程思想称为泛型编程#xff0c;主要利用的技术就是模板
C提供两种模板机制#xff1a;函数模板和类模板
函数模板作用#xff1a; 建立一个通用函数#xff0c;其函数返回值类型和形参类型可以不具体制定#xff0c;用一个虚拟的类型来代表。
语…一、函数模板
C另一种编程思想称为泛型编程主要利用的技术就是模板
C提供两种模板机制函数模板和类模板
函数模板作用 建立一个通用函数其函数返回值类型和形参类型可以不具体制定用一个虚拟的类型来代表。
语法
templatetypename T
or
templateclass T
函数声明或定义解释
template --- 声明创建模板
typename --- 表面其后面的符号是一种数据类型可以用class代替
T --- 通用的数据类型名称可以替换通常为大写字母
#includeiostream
using namespace std;//函数模板//交换两个整形函数
void swapInt(int a, int b)
{int temp a;a b;b temp;
}//交换两个浮点型函数
void swapDouble(double a, double b)
{double temp a;a b;b temp;
}//函数模板
templatetypename T //声明一个模板告诉编译器后面代码中紧跟着的T不要报错T是一个通用数据类型
void mySwap(T a, T b)
{T temp a;a b;b temp;
}void test()
{int a 10;int b 20;//swapInt(a, b);//利用函数模板交换//有两种方式使用模板//1.自动类型推导//mySwap(a, b);//2.显示指定类型mySwapint(a, b);cout a a endl;cout b b endl;//double c 1.1;//double d 2.2;//swapDouble(c, d);//cout c c endl;//cout d d endl;
}int main()
{test();return 0;
}
总结
函数模板利用关键字 template
使用函数模板有两种方式自动类型推导、显示指定类型
模板的目的是为了提高复用性将类型参数化
二、函数模板注意事项
1.自动类型推导必须推导出一致的数据类型T才可以使用
2.模板必须要确定出T的数据类型才可以使用
#includeiostream
using namespace std;//函数模板注意事项
templateclass T //typename可以替换成class
void mySwap(T a, T b)
{T temp a;a b;b temp;
}//1.自动类型推导必须推导出一致的类型数据T才可以使用
void test01()
{int a 10;int b 20;char c c;//mySwap(a, b);//正确//mySwap(a, c);//错误推导不出一致的T类型cout a a endl;cout b b endl;
}//2.模板必须要确定出T的数据类型才可以使用
templateclass T
void func() //函数体中未用到T调用时需要用到
{cout func函数的调用 endl;
}void test02()
{funcint();//未加int则出错需要显示指定类型
}int main()
{//test01();test02();return 0;
}
总结 使用模板时必须确定出通用数据类型T并且能够推导出一致的类型