2010-12-30 12 views
1

私はStringを実装していて、.hファイルで定義を与えていました。 String.hのコードは次のとおりです。エラー:予期した ')' before '<' token |

#include<list> 
class String 
{ 
    public: 
    String();//Constructor 
    String(char * copy);//For converting CString to String 
    const char *c_str(const String &copy);//For converting String to Cstring 
    String(list<char> &copy);//Copying chars from list 
    //Safety members 
    ~String(); 
    String(const String &copy); 
    void operator = (const String &copy); 
    protected: 
    int length; 
    char *entries; 
}; 

このエラーは、対象に記載されています。私はそれに従わないのですか?

+1

あなた '演算子='間違っdelcaredされます。それは自己への参照を返す必要があります。 –

+2

リストに文字列を格納するのは誰ですか?そして、 'String(char * copy)'は実際にコピーしている文字列を変更しますか?なぜ、そのメンバ関数は引数を取るCの文字列に変換するのですか? _誰があなたにそのようなヘッダーをくれたのですか?_陽気です。 – sbi

答えて

7

あなたはlist<char>の前でstd::が欠落しています

一度にあなたの問題のいくつか修正
String(std::list<char> &copy); 
+1

+1ピンクフロイド。 –

+0

@Dhruv Gairola - lol。彼の11.1K担当者の誰かが、そのアルバムカバーを彼のアイコンとして使っていることがどれくらいだろうか。 –

+0

ヘッドアップありがとう!!全てがうまくいっています:) – Cipher

1

#include <list> 

class String 
{ 
public: 
String(); 
String(const String &c); 
String(const char * c); 
String(std::list<char> c); // No idea why someone would have this constructor, but it was included in the original ... 
~String(); 

String& operator = (const String &c); 

const char *c_str(); 
private: 
unsigned int length; 
char* entries; 
}; 
+0

私はコンストラクタString :: String(std :: List ©);)を使用しました。なぜなら、文字列が読み込まれているときにリストに格納し、その後に文字列を文字列に変換する – Cipher

+1

ベクトルを使って文字を格納することもできますし、istreamから直接文字列クラスに読み込むこともできますし、std: :文字列クラス(あなたが自分で書くことを要求する宿題でない限り) –

+0

はい、私は関数read_in(istream&input)を使ってリスト内の文字を取り出し、そのリストを一時記憶のために使用しています。私はそれをデータ構造の本からフォローした後に私自身でやっているからです。私はITの人間ではありません:) – Cipher

関連する問題