首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

问一个关于模版函数的有关问题

2012-02-13 
问一个关于模版函数的问题!#include iostreamusingnamespacestdtemplate classTTfibonacci(Tn){const

问一个关于模版函数的问题!
#include <iostream>
using   namespace   std;

template <class   T>
T   fibonacci(T   n)   {
    const   int   sz   =   100;
    if(n   >   sz)exit(1);
    static   T   f[sz];   //   Initialized   to   zero
    f[0]   =   f[1]   =   1;
    //   Scan   for   unfilled   array   elements:
    int   i;
    for(i   =   0;   i   <   sz;   i++)
        if(f[i]   ==   0)   break;
    while(i   <=   n)   {
        f[i]   =   f[i-1]   +   f[i-2];
        std::cout < < "compute   f[ " < <i < < "]\n ";
        i++;
    }
    return   f[n];
}
int   main(){      
       
for(int   i=0;i <10;i++){
      cout < <fibonacci(i) < <endl;
      }
for(float   j=0;j <10;j++){
cout < <fibonacci(j) < <endl;
}
}

上述为什么不能实现,该怎么解决?


[解决办法]
你用的啥编译器啊,偶用VC2003,把
return f[n];
改成
return f[int(n)];
就好了,呵呵。

[解决办法]
哦,没看见,你后边有个float版本的实例调用啊。- -b
float不可以做数组下标的。
[解决办法]
编译器错误 C2108
错误消息
下标不是整型

[解决办法]
下标应该是整型的。
[解决办法]
你使用的内置的[]当然只能整型作为参数
[解决办法]
普通类型数组只能用整数下标.

template <class T>
T fibonacci(int n)

热点排行