读书人

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

发布时间: 2012-02-13 17:20:26 作者: rapoo

问一个关于模版函数的问题!
#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)

读书人网 >C++

热点推荐