zoukankan      html  css  js  c++  java
  • error C2783: 无法为“T”推导 模板 参数

    原则:“模板参数推导机制无法推导函数的返回值类型”

    版本一:

    // 缺少<T>     参数 int n    对比第三个版本( 缺少<T>   参数 T n) !

    编译错误提示:

    错误 1 error C2783: “T FibRecursion(int)”: 无法为“T”推导 模板 参数 c:usersyidocumentsvisual studio 2005projects斐波纳契数列斐波纳契数列斐波纳契数列.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 没看懂,囧!

  • 相关阅读:
    用户自定义控件
    sql 动态行转列
    sql 将表B中不存在表A的数据 插入到表A中
    C#获取键盘和鼠标操作的时间的类
    滚动条加粗和panel,gridControl结合用
    第三项任务——用例建模
    第二项任务——项目需求分析
    第一项任务:团队组建及项目启动
    实验报告(结对项目)
    实验报告(个人项目)
  • 原文地址:https://www.cnblogs.com/kira2will/p/3983084.html
Copyright © 2011-2022 走看看