Templates &引用;错误C4430“;为插入排序编写类模板代码时遇到

Templates &引用;错误C4430“;为插入排序编写类模板代码时遇到,templates,visual-c++,Templates,Visual C++,我正在尝试为插入排序算法编写一个模板类。但是我遇到了错误:“错误C44:缺少类型指定器-int假设。注意:C++不支持默认int”。但我不知道为什么会出现这种错误 插入\u sort.h文件,如下所示: #pragma once #include <iostream> template <typename T,int SIZE> class insertion_sort { T data[SIZE];

我正在尝试为插入排序算法编写一个模板类。但是我遇到了错误:“错误C44:缺少类型指定器-int假设。注意:C++不支持默认int”。但我不知道为什么会出现这种错误

插入\u sort.h文件,如下所示:

     #pragma once
     #include <iostream>
     template <typename T,int SIZE>
     class insertion_sort
     {
           T data[SIZE];
      public:
       insertion_sort(void);
       void set_data();
       void sort_data();
       void show_data();
      ~insertion_sort(void);
     };
#include <iostream>
#include "insertion_sort.h"
using namespace std;


template <typename T,int SIZE>
insertion_sort<T,SIZE>::insertion_sort(void)
{
    typedef typename int i;
for(i=0;i<SIZE;i++)
   data[i]=NULL;
}
template <typename T,int SIZE>
insertion_sort<T,SIZE>::set_data(void)
{
    typedef typename int i;
    cout<<"ENTER THE DATA"<<endl;
    for(i=0;i<SIZE;i++)
       cin>>data[i];
}
template <typename T,int SIZE>
insertion_sort<T,SIZE>::sort_data()
{
    typedef typename int i,j;
    T key;
    for(i=1;i<SIZE;i++)
    {
          j=i-1;
          key=data[j]
          while(data[j-i]>key)
          {
             data[j]=data[j-1];
             j--;
           };
           data[j+1]=key;
     }
}
 template <typename T,int SIZE>
insertion_sort<T,SIZE>::show_data()
{
typedef typename int i;
for(i=0;i<SIZE;i++)
    cout<<data[i]<<"\t";
}
template <typename T,int SIZE>
insertion_sort<T,SIZE>::~insertion_sort(void)
{
}
#include <iostream>
#include "insertion_sort.h"

using namespace std;

int main()
{
    insertion_sort<char,5> S;
    S.set_data();
    S.sort_data();
    S.show_data();
    return 0;
}
#pragma一次
#包括
模板
类插入排序
{
T数据[大小];
公众:
插入排序(无效);
void set_data();
void sort_data();
void show_data();
~插入排序(无效);
};
插入\u sort.cpp文件,如下所示:

     #pragma once
     #include <iostream>
     template <typename T,int SIZE>
     class insertion_sort
     {
           T data[SIZE];
      public:
       insertion_sort(void);
       void set_data();
       void sort_data();
       void show_data();
      ~insertion_sort(void);
     };
#include <iostream>
#include "insertion_sort.h"
using namespace std;


template <typename T,int SIZE>
insertion_sort<T,SIZE>::insertion_sort(void)
{
    typedef typename int i;
for(i=0;i<SIZE;i++)
   data[i]=NULL;
}
template <typename T,int SIZE>
insertion_sort<T,SIZE>::set_data(void)
{
    typedef typename int i;
    cout<<"ENTER THE DATA"<<endl;
    for(i=0;i<SIZE;i++)
       cin>>data[i];
}
template <typename T,int SIZE>
insertion_sort<T,SIZE>::sort_data()
{
    typedef typename int i,j;
    T key;
    for(i=1;i<SIZE;i++)
    {
          j=i-1;
          key=data[j]
          while(data[j-i]>key)
          {
             data[j]=data[j-1];
             j--;
           };
           data[j+1]=key;
     }
}
 template <typename T,int SIZE>
insertion_sort<T,SIZE>::show_data()
{
typedef typename int i;
for(i=0;i<SIZE;i++)
    cout<<data[i]<<"\t";
}
template <typename T,int SIZE>
insertion_sort<T,SIZE>::~insertion_sort(void)
{
}
#include <iostream>
#include "insertion_sort.h"

using namespace std;

int main()
{
    insertion_sort<char,5> S;
    S.set_data();
    S.sort_data();
    S.show_data();
    return 0;
}
#包括
#包括“插入\排序.h”
使用名称空间std;
模板
插入排序::插入排序(void)
{
typedef typename inti;

对于(i=0;i,
set_data()
sort_data()
show_data()
的定义缺少其返回类型。所有声明的返回类型均为
void
,因此只需添加到定义中:

template <typename T,int SIZE>
void insertion_sort<T,SIZE>::set_data(void)
{
    // snip ...
}
模板
void插入\排序::设置\数据(void)
{
//剪断。。。
}

设置数据()
排序数据()
显示数据()
的定义缺少其返回类型。所有声明的返回类型均为
void
,因此只需添加到定义中:

template <typename T,int SIZE>
void insertion_sort<T,SIZE>::set_data(void)
{
    // snip ...
}
模板
void插入\排序::设置\数据(void)
{
//剪断。。。
}

对于这种愚蠢的错误,我深表歉意。我给出了返回类型,但它再次显示了一些链接错误。main.obj:错误LNK2019:未解析的外部符号“public:\u thiscall insertion\u sort::~insertion\u sort(void)”(?1?$insertion_sort@H$04@@QAE@XZ)函数_main中引用了主文件未获取.cpp文件。我现在包含了它及其工作。对于这种愚蠢的错误,我深表歉意。我给出了返回类型,但它再次显示了一些链接错误。main.obj:error LNK2019:unresolved external symbol“public:_thiscallinsertion\u sort:~insertion\u sort(void)”(?1?$插入_sort@H$04@@QAE@XZ)函数_main中引用了主文件未获取.cpp文件。我已将其包括在内,并且它现在正在工作。