永发信息网

c++ 用模板的方法求数组的之和

答案:1  悬赏:40  手机版
解决时间 2021-07-26 14:54
  • 提问者网友:佞臣
  • 2021-07-25 18:34

c++ 用模板的方法求数组的之和,下面是我的代码:

#include<iostream.h>
template <typename T>
T fun(T *a,int n)
{
T sum=0,a[n];
for(int i=0;i<n;i++)
sum+=a[i];
return sum;
}
const int N=3;
template <typename T>
void main()
{
T a[N];
cout<<"输入数组:"<<endl;
for(int i=0;i<N;i++)
cin>>a[i];
cout<<"数组之和为:"<<fun(a,N)<<endl;
}

编译能通过,运行就出现错误了,错误提示如下:error LNK2001: unresolved external symbol _main

fatal error LNK1120: 1 unresolved externals

哪位高手帮忙解决下啊,感激不尽。。。。

最佳答案
  • 五星知识达人网友:平生事
  • 2021-07-25 20:09
抱歉,刚才回答有误

main函数不能加template

否则需要被实例化

没有被编译器推演出来之前,你的代码里是不会有main的

所以,去掉main的template就ok

改正的代码:

#include<iostream.h>
template <typename T>
T fun(T *a,int n)
{
T sum=0;
for(int i=0;i<n;i++)
sum+=a[i];
return sum;
}
const int N=3;

void main()
{
int a[N];
cout<<"输入数组:"<<endl;
for(int i=0;i<N;i++)
cin>>a[i];
cout<<"数组之和为:"<<fun(a,N)<<endl;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯