### Compilation Errors Indicating a Problem with Constructors

#### Effect

You get a compiler error about a constructor (Note: the errors you encounter may not be exactly the same as the following):

The message text for OS/2 is:

    itbseq.h(25:1) : (E) EDC3222:
    "IGTabularSequence<ToyString,IStdOps<ToyString> >::Node" needs a
    constructor because class member "ivElement" needs a constructor
    initializer.
    Names namesOfExtinct(animals.numberOfDifferentKeys());
    ANIMALS.C(55:57) : informational EDC3207:
    The previous message applies to the definition of template
    "ITabularSequence<ToyString>".

The message text for AIX is:

    "/usr/lpp/xlC/include/itbseq.h", line 25.1: 1540-222:
      (S) "IGTabularSequence<ToyString,IStdOps<ToyString> >::Node"
      needs a constructor because class member "ivElement" needs a
      constructor initializer.
    "animals.C", line 55.1: 1540-207:
      (I) The previous message applies to the definition of template
      "ITabularSequence<ToyString>".

The message text for Solaris is:

    "/.../.../include/itbseq.h", line 25.1: 1540-222:
      (S) "IGTabularSequence<ToyString,IStdOps<ToyString> >::Node"
      needs a constructor because class member "ivElement" needs a
      constructor initializer.
    "animals.C", line 55.1: 1540-207:
      (I) The previous message applies to the definition of template
      "ITabularSequence<ToyString>".

#### Reason

Compiler error messages indicating a problem with constructors for a collection are typically related to the constructors defined for your element. Here the default constructor for the element is missing.

#### Solution

Define the default constructor for the element class.

Introduction to the Collection Classes
Overall Implementation Structure
Element Functions and Key-Type Functions

Implementing Element- and Key-Type Functionality
Defining Member Functions of the Element Object Type
Defining Separate Global Functions
Using or Defining an Element Operation Class
Memory Management with Element Operation Classes
Possible Implementation Paths
Choosing One of the Provided Implementation Variants
Instantiating the Collection Classes