0

挿入ソート アルゴリズムのテンプレート クラスを作成しようとしています。しかし、「エラー C4430: 型指定子がありません - int が想定されています。注: C++ は default-int をサポートしていません」というエラーが発生します。しかし、なぜこのエラーが発生するのかわかりません。

insert_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);
     };

insert_sort.cpp ファイルは次のとおりです。

#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)
{
}

main.cpp ファイルは次のとおりです。

#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;
}

コードをビルドすると、次のエラーが発生します。

c:\documents and settings\devil_den\my documents\visual studio 2008\projects\sorting_algorithms\sorting_algorithms\insertion_sort.cpp(17): エラー C4430: 型指定子がありません - int と見なされます。注: C++ は default-int をサポートしていません

c:\documents and settings\devil_den\my documents\visual studio 2008\projects\sorting_algorithms\sorting_algorithms\insertion_sort.cpp(34): エラー C4430: 型指定子がありません - int と見なされます。注: C++ は default-int をサポートしていません

c:\documents and settings\devil_den\my documents\visual studio 2008\projects\sorting_algorithms\sorting_algorithms\insertion_sort.cpp(41): エラー C4430: 型指定子がありません - int と見なされます。注: C++ は default-int をサポートしていません

main.cpp
コードを生成しています...
ビルド ログは「file://c:\Documents and Settings\devil_den\My Documents\Visual Studio 2008\Projects\Sorting_Algorithms\Sorting_Algorithms\Debug\BuildLog.htm」に保存されました。
Sorting_Algorithms - 3 つのエラー、0 の警告
========== ビルド: 0 成功、1 失敗、0 最新、0 スキップ ==========
4

1 に答える 1

3

との定義にはset_data()、戻り値の型がありませんsort_data()show_data()すべてが戻り値の型を持つように宣言されているvoidので、定義に追加するだけです:

template <typename T,int SIZE>
void insertion_sort<T,SIZE>::set_data(void)
{
    // snip ...
}
于 2012-10-29T09:13:03.280 に答える