// append item, retaining it
Object * atPut ( int pos, Object * item );
// put item at a given position Object * atlnsert ( int pos, Object * item );
Object * at ( int pos ) const
// return item at position
{
return pos >= 0 && pos < numltems ? items [pos] : NULL;
}
int realloc ( int newSize );
// set new capacity of container
int indexOfObject ( Object * ) const;
// object identical compare int indexOfObjectldenticalTo ( Object * ) const;
// index of object with the same address
void sort ( ObjectComparator func, void * arg ); bool isEmpty () const return numltems < 1;
int getCount () const re turn numlterns;
int getNumlterns () const return numltems;
int getDelta () const return delta;
А. В. Боресков. Гоафика трехмерной компьютерной игры
class Iterator {
private:
const Array * array;
int index; public:
Iterator ( const Array * theArray ) {
array = theArray; index = 0;
}
int end () const {
return index >= array -> getCount ();
}
Object * value () const {
return array -> at ( index );
}
void operator ++ () {
index++;
}
};
Iterator getlterator () const {
return Iterator ( this );
}
static MetaClass classlnstance;
Метод insert служит для вставки элемента в конец массива. При этом у вставляемого объекта автоматически вызывается метод retain, гарантирующий, что объект не будет уничтожен в обход содержащего его контейнерного класса. Существует также возможность поместить в массив элемент, не вызывая при этом метод retain, например в случае, если вставляемый объект был создан при помощи new специально для вставки в массив и больше не нужен. Для этого служит метод insertNoRetain.
Метод atlnsert позволяет вставить объект на заданное место, при этом некоторые из содержащихся внутри массива элементов могут сдвинуться.
Объектная модель. Основные классы
Методы removeAll, removeAtlndex и removeObjectWithName позволяю! удалить все элементы массива, объект с заданным индексом и объект с заданным именем. При этом каждому удаляемому объекту посылается сообщение release.