回 帖 发 新 帖 刷新版面

主题:必须定义入口点??什么意思??

#include <iostream>
using namespace std;
template < typename T >
void turn(T *p)
{
    int e,f;
    T g;
    for(e=0;e<n-1;e++)
    {
        for(f=e+1;f<=n-1;f++)
        {
            if(*p[e]>*p[f])
            {
                g=*p[e];
                *p[e]=*p[f];
                *p[f]=g;
            };
        };
    };
}
int n,m;
template < typename T >
int main()
{
    cin >> ::n;
    T a[n];
    for(m=0;m<n;m++)
        cin >> a[m];
    turn(a);
    for(m=0;m<n;m++)
        cout << a[m] << "_" ;
    return 0;
}


编译运行后出现------ 已启动生成: 项目: xcvxcv, 配置: Debug Win32 ------
正在链接...
LINK : fatal error LNK1561: 必须定义入口点
生成日志保存在“file://d:\C++\xcvxcv\xcvxcv\Debug\BuildLog.htm”
xcvxcv - 1 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========
不知道怎么办。。。。

回复列表 (共5个回复)

沙发

把main前的template < typename T >去掉

板凳

main函数好像是不能用模板的.再说了你main也没有参数为什么也来一个T?里面的
T a[n] 也有问题的.

3 楼

去下个孙鑫的视频教程来看吧,http://www.abab123.com/bbs/down.asp?html=672692

4 楼

你的代码错误有点多哈
1.首先买main()函数前的template < typename T >要去掉,因为语法不允许,
2.不能对数组做动态定义,也就是不能用变量来定义数组的大小;并且数组下标为多少,那么输入n就为那个值;这一点不好改;
3.turn函数中的n没有定义,你可以将主函数中的n传过去;这样的话就要改turn(a);和void turn(T *p)两个地方了;
4.*p[e]>*p[f]语法错误,应去掉*号;
5.函数中大括号后的分号最好去掉,没有必要用;
#include <iostream>
using namespace std;
template < typename T >
void turn(T *p,int n)
{
    int e,f;
    T g;
    for(e=0;e<n-1;e++)
    {
        for(f=e+1;f<=n;f++)
        {
            if(p[e]>p[f])
            {
                g=p[e];
                p[e]=p[f];
                p[f]=g;
            }
        }
    }
}
int n,m;
//template < typename T >
int main()
{
    cin >> n;
    int a[5];//注意:如果你将数组大小定义为5,那么n的值必须也为5.
    for(m=0;m<5;m++)
        cin >> a[m];
    turn(a,n);
    for(m=0;m<n;m++)
        cout << a[m] << "_" ;
    return 0;
}

5 楼

四楼回复比较合理

我来回复

您尚未登录,请登录后再回复。点此登录或注册