首页 > 代码库 > error C2783: 无法为“T”推导 模板 参数
error C2783: 无法为“T”推导 模板 参数
原则:“模板参数推导机制无法推导函数的返回值类型”
版本一:
// 缺少<T> 参数 int n 对比第三个版本( 缺少<T> 参数 T n) !
编译错误提示:
错误 1 error C2783: “T FibRecursion(int)”: 无法为“T”推导 模板 参数 c:\users\yi\documents\visual studio 2005\projects\斐波纳契数列\斐波纳契数列\斐波纳契数列.cpp 16
1 #include "stdafx.h" 2 #include <iostream> 3 4 template<class T> 5 T FibRecursion(int n) // 参数 int n 6 { 7 if (n<0) 8 return -1; 9 10 if (n == 0 || n == 1)11 return 1;12 13 return FibRecursion(n-1) + FibRecursion(n-2); // 缺少<T>14 }15 int _tmain(int argc, _TCHAR* argv[])16 {17 int result = FibRecursion<int>(30); //错误行18 system("pause");19 return 0;20 }
版本二:
// 加上<T> 参数 int n 或者 T n
编译通过!
1 #include "stdafx.h" 2 #include <iostream> 3 4 template<class T> 5 T FibRecursion(int n) // 参数 int n 6 { 7 if (n<0) 8 return -1; 9 10 if (n == 0 || n == 1)11 return 1;12 13 return FibRecursion<T>(n-1) + FibRecursion<T>(n-2); // 加上<T>14 }15 int _tmain(int argc, _TCHAR* argv[])16 {17 int result = FibRecursion<int>(30); //没有报错18 system("pause");19 return 0;20 }
1 #include "stdafx.h" 2 #include <iostream> 3 4 template<class T> 5 T FibRecursion(T n) // 参数 T n 6 { 7 if (n<0) 8 return -1; 9 10 if (n == 0 || n == 1)11 return 1;12 13 return FibRecursion<T>(n-1) + FibRecursion<T>(n-2); // 加上<T>14 }15 int _tmain(int argc, _TCHAR* argv[])16 {17 int result = FibRecursion<int>(30); //没有报错18 system("pause");19 return 0;20 }
版本三:
// 缺少<T> 参数 T n
编译通过!
1 #include "stdafx.h" 2 #include <iostream> 3 4 template<class T> 5 T FibRecursion(T n) // 参数 T n 6 { 7 if (n<0) 8 return -1; 9 10 if (n == 0 || n == 1)11 return 1;12 13 return FibRecursion(n-1) + FibRecursion(n-2); // 缺少<T>14 }15 int _tmain(int argc, _TCHAR* argv[])16 {17 int result = FibRecursion<int>(30); //没有报错18 system("pause");19 return 0;20 }
http://bbs.sjtu.edu.cn/bbstcon,board,C,reid,1293357257.html 没看懂,囧!
error C2783: 无法为“T”推导 模板 参数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。