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 没看懂,囧!

  • 相关阅读:
    MicroMessage的动态操作(第二步)
    preparement 为什么能防sql注入
    谈MicroMessageTest的开始创建
    关于类的全称什么时候用点什么时候用路径的斜杠
    做一个消息自动回复,但是回复内容可以在网页上面输入,用input接收,错了,别人有新增选项,本身就是在页面进行新增,页面维护
    java.sql.Types可以查mysql相关的数据类型
    Navicate一个有用的注册码
    Java中导入、导出Excel
    扁平化
    CentOS-6.5安装配置Tomcat-7
  • 原文地址:https://www.cnblogs.com/kira2will/p/3983084.html
Copyright © 2011-2022 走看看