正在加载图片...
(20.2函数模板参数 模板函数调用是寻求函数模板的类型参数匹配,类型实 参和类型形参的匹配规则与函数的数据实参类型与数据 形参类型匹配的规则不同。类型实参和类型形参的匹配 规则更为苛刻 template<c1ass四 add(ia,db)函数的调用 ⅴ oid swap(T&a,T&b) 是普通的函数调用虽然 T七≡a;a=b;b=t; ia的类型和 double型不 同,但通过数据的int型 int add (double a, double b)[ 隐式转换到 double型 return atb: sWap(ia,db)函数调用, int fnot 由于ia和db的类型分别 int ia=3 为int和doub1e型,不能 double db=5.0 char sl[]=good", s2[better 统在同企理 in七 add (ia db) l/ok 南着型裔类 swap(ia, ab) //error 荐鼓藓孑递5]和 swap(sl, s2) 11 error char[7,是不同类型的模板函数调用是寻求函数模板的类型参数匹配,类型实 参和类型形参的匹配规则与函数的数据实参类型与数据 形参类型匹配的规则不同。类型实参和类型形参的匹配 规则更为苛刻 template<class T> void swap(T& a, T& b){ T t=a; a=b; b=t; } int add(double a, double b){ return a+b; } int fn(){ int ia=3; double db=5.0; char s1[]="good", s2[]="better"; int x = add(ia, db); // ok swap(ia, db); // error swap(s1, s2); // error } add(ia,db)函数的调用 是普通的函数调用虽然 ia的类型和double型不 同,但通过数据的int型 隐式转换到double型 swap(ia,db)函数调用, 由于ia和db的类型分别 为int和double型,不能 统一在同一个类型名上, 去模板类型参数没有隐 式转换之说。 swap(s1,s2)函数调用, 由于s1和s2的类型为字 符数组char[5]和 char[7],是不同类型的 【 20.2 函数模板参数 】
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有