1

現在、私の四角形リストcontatinerの.begin()に++演算子をオーバーロードしようとしています。演算子のオーバーロード

私は私のHPPファイルに私は、次のしている:

template <typename T_> 
    class sq_list 
    { 

    public: 
     typedef T_* iterator; 

     iterator _itr; 
     square_list(iterator n) : _itr(n) { } 


    sq_list operator ++ (sq_list<int> lhs) {  
     return lhs++; 
     } 
    }; 

現在、これは正方形のリストオブジェクトの内部でイテレータを置くために私を必要とします。 私が必要とするのは、.cppファイルが++ name.begin()を実行するときに++メソッドを呼び出すことです。その値を自分のコンテナの中に入れてからそのコンテナをインクリメントするのではなく、 オーバーロードされた関数を++ name.begin()でのみ動作させて、イテレータをsq_listコンテナに入れる必要がなくなります。

ありがとうございます!

+0

ご質問はありますか? –

+0

@LuchianGrigore私の++オペレータは、私の四角形のリストオブジェクトに入れるのではなく、イテレータ自体を操作するだけです。 – user1219627

+0

'演算子++ 'は2つの' sq_list'パラメータ(暗黙の 'this'と' lhs' )?あなたがイテレータのために 'operator ++'をオーバーロードしたいと思っているものから(あなたはそのコードでは実行していません)btw。 'iterator'はポインタなので、あなたはなぜあなたは演算子をオーバーロードする必要がありますか?ポインタには既に 'operator ++'があります – Grizzly

答えて

0

通常、イテレータで演算子を定義する必要があります。ここでは、イテレータは基底の要素型へのポインタなので、++はすでにその上で動作しています。 operator++の実装を全くせずに++をイテレータで呼び出そうとしましたか?

関連する問題