バナーをクリックすれば目次に戻ります

Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.


RWIterator

形式

#include <rw/iterator.h>
typedef RWIterator Iterator;  // "Smalltalk" typedef

説明

このクラスは、Smalltalk 式コレクションクラスによって使用される反復子の抽象基底クラスです。反復子を配置およびリセットする仮想関数が含まれています。それらの仮想関数は、すべて純粋仮想関数なので、定義は派生クラスで行わなければなりません。以下の記述は一般的で、継承反復子はいずれもここに記述したパターンに従います。

持続性

なし

公開仮想関数

virtual RWCollectable*
findNext(const RWCollectable* target) = 0;

オブジェクト target と "一致する" 次の項目に反復子を移動し、その項目を返します。一致する項目がなければ NULL を返します。ほとんどのコレクションでは、コレクションの型に応じて isEqual()compareTo() を使用して一致すれば、項目はオブジェクト target と一致することになります。しかし、"同一性コレクション" (RWIdentitySetRWIdentityDictionary) を使用すると、同じアドレスを持つ項目 (同一の項目) を等しい項目とします。

virtual RWCollectable*
key() const = 0;

現在の反復子の位置にある項目を返します。

virtual RWCollectable*
operator()() = 0;

反復子を次の項目に移動し、その項目を返します。コレクションの最後に達したら nil を返します。

virtual void
reset() = 0;

反復子を作成直後の状態にリセットします。