2011-03-13 14 views
1

C++でジェネリッククラスを作成しようとしていますが、6,16,19行目に「< 'トークン」の前にエラーが発生しています...C++は汎用クラスを実装しています

私は単純なクラスを作成しており、そこから進むことができると確信しています。ここで私が対処しているサンプルコードです:

using namespace std; 

//line 6 
generic < class T> 
class Table 
{ 
friend class Table; 
     Table< T> *LT; 
     LT_Node* cursor; 

public: 
     Table();  
     ~Table(); 
     Table(const Table & source); 
     Table& operator =(const Table& rhs); 
}; 

//line 16 
generic < class T> 
Table< T>::Table(){} 

//line 19 
generic < class T> 
Table< T>::~Table(){} 

generic < class T> 
Table< T>::Table(const Table & source){} 

generic < class T> 
Table::Table& operator =(const Table& rhs){} 

ありがとうございます!

+2

なぜこの「一般的な」単語を使用していますか?これはうまくいくと思いますか? –

+0

C++テンプレートを「ジェネリッククラス」と考えると、それらが持つ力の巨大な側面は無視されます。もちろん、その力が複雑になるので、無視したいかもしれません。 :-)また、@James McNellisのように、私はなぜあなたが「テンプレート」の代わりに「ジェネリック」という言葉を使用すべきだと思ったのか、本当に興味がありますか?あなたはどこかの例でそれを見ましたか? – Omnifarious

答えて

3

通常のC++の場合、キーワードはgenericではなくtemplateです。クラスまたは関数用のテンプレートを定義しており、後で使用時にインスタンス化されます。

+0

私は参照してください。ジェネリックスを実装するための学校ラボを行っているので、一般的なキーワードがあるかもしれないと思ったので、もしあればそれを使いたいと思います。テーブル :: Table&operator =(const Table &rhs){} – ChefProgrammer

+0

ここでは、テーブル :: Table&を作成しますが、それは正確ですが、正確には何ですかあなたはあなたのコードにあります。 –

+0

まあ、上に書いた**テーブル ::テーブル(constテーブル&ソース){} **と書かれていますが、動作しているようですが、行**でエラーが発生しました。テーブル ::テーブル&演算子=(constテーブル &rhs){} **には前と同じエラーがあります。 – ChefProgrammer