马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
所谓函数模板就是定义一个通用的函数,不指定详细的参数,用一个虚拟参数取代;
当函数调用时,会根据实参判定详细的范例。
注意:不要利用默认参数;可以重载但尽量不要重载。- #include<iostream>
- using namespace std;
- //以往我们要输出三个类型的变量时
- //void Show(int a)
- //{
- // cout << a << endl;
- //}
- //
- //void Show(char a)
- //{
- // cout << a << endl;
- //}
- //
- //void Show(string str)
- //{
- // cout << str << endl;
- //}
- template<typename T>
- void Show(T a)
- {
- cout << a << endl;
- }
- int main()
- {
- Show(100);
- Show('x');
- Show("abcd");
- return 0;
- }
复制代码 这里的typename也可以换成class,二者可以互换,但嵌套依赖范例:必须利用typename。
另有一点注意如下所示:- #include<iostream>
- using namespace std;
- template<typename T>
- void AA(T t1, T t2)
- {
- cout << t1 << " " << t2 << endl;
- }
- template<typename T1,typename T2>
- void BB(T1 t1, T2 t2)
- {
- cout << t1 << " " << t2 << endl;
- }
- int main()
- {
- AA(10, 20);
- //AA(10, 3.14);//不行
- BB(10,20);
- BB(10, 3.14);
- return 0;
- }
复制代码 |