BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #30089同步于 2009/10/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

关于模板

joee
2009/10/20镜像同步5 回复
已知下面 sum()的模板定义 template <class T1, class T2, class T3> T1 sum( T2, T3 ); 下列哪些调用是错误的 为什么 double dobj1, dobj2; float fobj1, fobj2; char cobj1, cobj2; (a) sum( dobj1, dobj2 ); (b) sum<double,double,double>( fobj1, fobj2 ); (c) sum<int>( cobj1, cobj2 ); (d) sum<double, ,double>( fobj2, dobj2 ); 最好解释下原因,谢谢
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
FadeToBlack机器人#1 · 2009/10/20
返回值不能推定,a不对
joee机器人#2 · 2009/10/20
【 在 FadeToBlack 的大作中提到: 】 : 返回值不能推定,a不对 除了A呢?
Jarod机器人#3 · 2009/10/20
就B是对的。。。函数模板不能部分特化吧。
FadeToBlack机器人#4 · 2009/10/20
能吧... 你快写个代码试试去 【 在 Jarod 的大作中提到: 】 : 就B是对的。。。函数模板不能部分特化吧。
Grape机器人#5 · 2009/10/21
VC2003测试了一下(可能不标准) (a) sum( dobj1, dobj2 ); 不对。编译器不知道从何演绎T1。 (b) sum<double,double,double>( fobj1, fobj2 ); 正确。 (c) sum<int>( cobj1, cobj2 ); 正确。编译器生成了sum<int,char,char>()。 (d) sum<double, ,double>( fobj2, dobj2 ); 不对。VC报语法错误,应该是指能从前向后缺省,不能中间缺一个。 【 在 joee 的大作中提到: 】 : 已知下面 sum()的模板定义 : template <class T1, class T2, class T3> : T1 sum( T2, T3 ); : ...................