-1

次のコードでテンプレートを使用しようとしましたが、メイン関数の最初の行に問題があります!

{
  #include <iostream>
  using namespace std;
  template <class T>
  struct node
  {
        T inf;
         node<T> * next;
 };
 template <class S>
 class String
{
     private :
            int Slength;
          node<S> * SS;
   public :
         void get_String()
         {
              SS = new node<S>;
              SS -> next = NULL;
              node<S> * now = SS; 
              char input;
              while(input = getchar())
              {
                          if((input =='\n') || (input == ' ') || (input == '\t'))
                                    break;
                          now -> inf = input;
                          now -> next = new node<S>;
                          now = now -> next;
                          now -> next = NULL;
                          ++Slength;
              }
         }
         void show()
         {
              node<S> * now = SS;
              while(now -> next != NULL)
              {
                        cout << now -> inf ;
                        now = now -> next;
              }
              cout << endl;
         }
 };
 int main()
 {
 String a;
 a.get_String();
 a.show();
 cout << char(0) << " " << int(' ') << " " <<endl;  
 system("pause");
 return 0; 
 }

追加することで問題が解決しました

<char>

その後!他に効率的で良い方法はありますか?また、テンプレートに関する信頼できる読みやすいリファレンスを知っていますか?

4

1 に答える 1

4

はテンプレート クラスであるためString、次のようにする必要があります。

String<char> a;
于 2012-04-19T14:39:37.870 に答える