Public Member Functions | Private Attributes

chomp::homology::word Class Reference

A word, that is, a string with very few properties. More...

#include <words.h>

List of all members.

Public Member Functions

 word ()
 Default constructor of an empty word.
 word (const char *s)
 Constructor of a word based on a given C-style string.
 word (const word &w)
 Copy constructor.
 ~word ()
 Destructor.
wordoperator= (const word &w)
 Assignment operator.
int length () const
 Returns the length of the word (without the ending zero char).
const char * text () const
 Returns a pointer to the contents of the word.
 operator const char * () const
 Returns a pointer to the contents of the word.
wordoperator+= (const word &w)
 Word concatenation operator.
word operator+ (const word &w) const
 Word concatenation operator.
 operator int () const
 Returns the value of the number contained in the word; allows a preceding '+'.

Private Attributes

int len
 The length of the word (without the terminating zero character).
char * txt
 A memory buffer containing the word.

Detailed Description

A word, that is, a string with very few properties.

Definition at line 65 of file words.h.


Constructor & Destructor Documentation

chomp::homology::word::word (  )  [inline]

Default constructor of an empty word.

Definition at line 113 of file words.h.

References len, and txt.

{
        len = 0;
        txt = NULL;
        return;
} /* word::word */

chomp::homology::word::word ( const char *  s  )  [inline]

Constructor of a word based on a given C-style string.

Definition at line 120 of file words.h.

References len, and txt.

{
        len = s ? strlen (s) : 0;
        if (!len)
                txt = NULL;
        else
        {
                txt = new char [len + 1];
                if (!txt)
                        throw "Not enough memory to create a word.";
                strcpy (txt, s);
        }
        return;
} /* word::word */

chomp::homology::word::word ( const word w  )  [inline]

Copy constructor.

Definition at line 135 of file words.h.

References len, and txt.

{
        len = w. len;
        if (!len)
                txt = NULL;
        else
        {
                txt = new char [len + 1];
                if (!txt)
                        throw "Not enough memory to copy a word.";
                strcpy (txt, w. txt);
        }
        return;
} /* word::word */

chomp::homology::word::~word (  )  [inline]

Destructor.

Definition at line 150 of file words.h.

References txt.

{
        if (txt)
                delete [] txt;
        return;
} /* word::~word */


Member Function Documentation

int chomp::homology::word::length (  )  const [inline]

Returns the length of the word (without the ending zero char).

Definition at line 174 of file words.h.

References len.

{
        return len;
} /* length */

chomp::homology::word::operator const char * (  )  const [inline]

Returns a pointer to the contents of the word.

Definition at line 184 of file words.h.

References txt.

{
        return txt;
} /* operator int */

chomp::homology::word::operator int (  )  const [inline]

Returns the value of the number contained in the word; allows a preceding '+'.

Definition at line 215 of file words.h.

References len, and txt.

{
        if (!len)
                return 0;
        char *s = txt;
        if (*s == '+')
                ++ s;
        int num;
        std::istringstream str (s);
        str >> num;
        if (!str)
                return 0;
        else
                return num;
} /* operator int */

word chomp::homology::word::operator+ ( const word w  )  const [inline]

Word concatenation operator.

Definition at line 208 of file words.h.

{
        word new_w (*this);
        new_w += w;
        return new_w;
} /* operator + */

word & chomp::homology::word::operator+= ( const word w  )  [inline]

Word concatenation operator.

Definition at line 189 of file words.h.

References len, and txt.

{
        if (!len)
        {
                *this = w;
                return *this;
        }
        if (!w. len)
                return *this;
        int newlen = len + w. len;
        char *newtxt = new char [newlen + 1];
        strcpy (newtxt, txt);
        strcat (newtxt, w. txt);
        delete [] txt;
        txt = newtxt;
        len = newlen;
        return *this;
} /* operator += */

word & chomp::homology::word::operator= ( const word w  )  [inline]

Assignment operator.

Definition at line 157 of file words.h.

References len, and txt.

{
        if (txt)
                delete [] txt;
        len = w. len;
        if (w. txt)
        {
                txt = new char [len + 1];
                if (!txt)
                        throw "Not enough memory to copy a word.";
                strcpy (txt, w. txt);
        }
        else
                txt = NULL;
        return *this;
} /* operator = */

const char * chomp::homology::word::text (  )  const [inline]

Returns a pointer to the contents of the word.

Definition at line 179 of file words.h.

References txt.

{
        return txt;
} /* text */


Member Data Documentation

The length of the word (without the terminating zero character).

Definition at line 104 of file words.h.

Referenced by length(), operator int(), operator+=(), operator=(), and word().

char* chomp::homology::word::txt [private]

A memory buffer containing the word.

Definition at line 107 of file words.h.

Referenced by operator const char *(), operator int(), operator+=(), operator=(), text(), word(), and ~word().


The documentation for this class was generated from the following file: