Класс переопределяет оператор [ ], чтобы сократить код обращения к ячейкам списка.

    CmaList ();

Создание нового пустого списка.

    CmaList (ImaList *list);

Получение доступа к списку, заданному своим интерфейсом.

    CmaList (CmaCell &cell);

Получение доступа к списку, хранящемуся в ячейке. Если ячейка не является списком, то в ней создаётся новый пустой список, а старое содержимое затирается.

    long Size();

Получить длину списка.

    CmaCell& CmaList::operator[] (long i);
    CmaCell& CmaList::operator[] (maString i);

Получить элемент списка по его номеру или имени. Несуществующие ячейки создаются автоматически.

    CmaCell* CmaList::GetCell (long i);
    CmaCell* CmaList::GetCell (maString i);

Чтобы обращаться к существующим ячейкам списка без автоматического добавления, следует использовать функции GetCell. Если ячейка не найдена, эти функции возвращают нулевой указатель.

    maString NameOf(long index);

Получить имя элемента по его номеру.

    long AddCell(maString name);

Добавить ячейку с именем name в конец списка. Возвращает номер созданой ячейки в списке или -1, если ячейка с этим именем уже есть в списке.

    void CreateCells(long count);

Сделать количество ячеек в списке не меньшим count. При необходимости создает новые ячейки без имени в конце списка, но никогда не удаляет уже существующие ячейки.

    long IndexOf(maString name);

Найти элемент с именем name и вернуть его номер. Если не найден элемент списка с ткаим именем, возвращает -1.

    void Clear();

Удаляет все ячейки из списка.