2011-12-15 14 views
1

私はイテレータのコンストラクタをやっているが、私はデフォルト値イテレータのコンストラクタでデフォルト値を設定する方法は? C++

はここに宣言だ何把握することはできません。

const_iterator(typename map<TYPE, TYPE2>::const_iterator = ?????);

私のイテレータが可能になるので、それは、マップのベクトルですマップイテレータ。 デフォルト値は何ですか?私は

原因: HashMap<TYPE, TYPE2>::const_iterator i;

それは私は適切なデフォルトコンストラクタを持っていないと言います。

ありがとうございました!あなたは、私が(無効イテレータです)マップイテレータのデフォルト値を使用することをお勧めします、デフォルト値を必要とする理由に入っていない

+0

ここで何をしようとしているのか説明できますか?なぜこのコンストラクタにデフォルト値が必要なのですか?あなたはそれから何を達成したいのですか?何か変わったようですが、文脈はあまりありません。 – Flexo

+0

このコンストラクタは何をすべきですか?パラメータがデフォルトを持つことは意味がありますか? –

+0

@awoodland私は自分の質問を編集しました。申し訳ありません – Marc

答えて

3

typedef typename map<TYPE, TYPE2>::const_iterator map_citer; 
const_iterator(map_citer param = map_citer()); 
           //^^^^^^^^^^^ 

編集:

あなたの編集を考慮すると、あなたの状況で最も論理的なのはあなたのコンストラクタに過負荷がかかるようです。 2つの過負荷、1つは何も取らない(あなたはそのコンストラクタで最も良いと思うことをやる)ものと、元のものを持っています。それはトリックを行う必要があります:)

const_iterator(typename map<TYPE, TYPE2>::const_iterator); 
const_iterator(); 
+0

ありがとうございます!私はabit愚かな笑を感じる – Marc

関連する問題