---
name: "SoBaseList"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SoBaseList/3iv"
---

# SoBaseList(3iv)

maintains a list of pointers to instances of the SoBase classes

## NAME

SoBaseList — maintains a list of pointers to instances of the **SoBase** classes

## INHERITS FROM

SbPList \> SoBaseList

## SYNOPSIS

**#include \<Inventor/SoLists.h\>**

Methods from class SoBaseList:

	**SoBaseList()**\
 	**SoBaseList(int size)**\
 	**SoBaseList(const SoBaseList &l)**\
 	**~SoBaseList()**\
 **void**	**append(SoBase \*ptr)**\
 **void**	**insert(SoBase \*ptr, int addBefore)**\
 **void**	**remove(int which)**\
 **void**	**truncate(int start)**\
 **void**	**copy(const SoBaseList &l)**\
 **SoBaseList &**	**operator =(const SoBaseList &l)**\
 **SoBase \***	**operator \[\](int i) const**\
 **void**	**set(int i, SoBase \*ptr)**\
 **void**	**addReferences(SbBool flag)**

Methods from class SbPList:

**int**	**find(const void \*ptr) const**\
 **int**	**getLength() const**\
 **int**	**operator ==(const SbPList &pl) const**\
 **int**	**operator !=(const SbPList &pl) const**

## DESCRIPTION

**This subclass of SbPList** holds lists of pointers to instances of classes derived from **SoBase** (an abstract class). A flag indicates whether adding an instance pointer to the list should add a reference to the instance. If this flag is TRUE, then adding and removing pointers from the list updates reference counts in the corresponding instances.

## METHODS

	**SoBaseList()**\
 Constructor.

	**SoBaseList(int size)**\
 Constructor that pre-allocates storage for **size** pointers.

	**SoBaseList(const SoBaseList &l)**\
 Constructor that copies the contents of another list.

	**~SoBaseList()**\
 Destructor.

**void**	**append(SoBase \*ptr)**\
 Adds a pointer to the end of the list.

**void**	**insert(SoBase \*ptr, int addBefore)**\
 Inserts given pointer in list before pointer with given index.

**void**	**remove(int which)**\
 Removes pointer with given index.

**void**	**truncate(int start)**\
 Removes all pointers after one with given index, inclusive.

**void**	**copy(const SoBaseList &l)**\
 Copies a list, keeping all reference counts correct.

**SoBaseList &**	**operator =(const SoBaseList &l)**\
 Copies a list, keeping all reference counts correct.

**SoBase \***	**operator \[\](int i) const**\
 Accesses an element of a list.

**void**	**set(int i, SoBase \*ptr)**\
 Sets an element of a list.

**void**	**addReferences(SbBool flag)**\
 Indicates whether to call **ref()** and **unref()** for bases in the list when adding/removing them. The default value is TRUE.

## SEE ALSO

**SoBase, SoNodeList, SoPathList**
