The DejaVU Framework -- hush 3.1

include: professional-program-11-OneDGrid-OneDGrid.h /cygdrive/d/www/media


- [up] [top] - index make include source logic grammar scripts html configure mx slides talks scenes reports projects
<body bgcolor="#FFFFFF" text="#000000">

template 
<h4 align=right text=red> OneDGrid</h4><hr>
  class OneDGrid
{
    public:
        OneDGrid(int inSize = kDefaultSize);
        OneDGrid(const OneDGrid& src);
        ~OneDGrid();

        OneDGrid &operator=(const OneDGrid& rhs);
        void resize(int newSize);

        T& operator[](int x);
        const T& operator[](int x) const;
        int getSize() const { return mSize; }
        static const int kDefaultSize = 10;
    protected:
        void copyFrom(const OneDGrid& src);
        T* mElems;
        int mSize;
};
<hr>


template 
const int OneDGrid::kDefaultSize;

template 
OneDGrid::OneDGrid(int inSize) : mSize(inSize)
{
    mElems = new T[mSize];
}

template 
OneDGrid::OneDGrid(const OneDGrid& src)
{
    copyFrom(src);
}

template 
OneDGrid::~OneDGrid()
{
    delete [] mElems;
}

template 
void OneDGrid::copyFrom(const OneDGrid& src)
{
    mSize = src.mSize;
    mElems = new T[mSize];

    for (int i = 0; i < mSize; i++) {
        mElems[i] = src.mElems[i];
    }
}

template 
OneDGrid& OneDGrid::operator=(const OneDGrid& rhs)
{
    // check for self-assignment
    if (this == &rhs) {
        return (*this);
    }

    // free the old memory
    delete [] mElems;

    // copy the new memory
    copyFrom(rhs);
    return (*this);
}

template 
void OneDGrid::resize(int newSize)
{
    T* newElems = new T[newSize]; // Allocate the new array of the new size

    // Handle the new size being smaller or bigger than the old size
    for (int i = 0; i < newSize && i < mSize; i++) {
        // Copy the elements from the old array to the new one
        newElems[i] = mElems[i];
    }
    mSize = newSize; // store the new size
    delete [] mElems; // free the memory for the old array
    mElems = newElems; // Store the pointer to the new array
}

template 
T& OneDGrid::operator[](int x)
{
    return (mElems[x]);
}

template 
const T& OneDGrid::operator[](int x) const
{
    return (mElems[x]);
}

<hr> <style type="text/css"> div.mainnavigate { margin: 20px 2px; /* background-color: #ffffff; */ border: 1px solid black; } </style> <div class=xnavigate> [] <black>readme</black> course(s) preface <black>I</black> 1 2 <black>II</black> 3 4 <black>III</black> 5 6 7 <black>IV</black> 8 9 10 <black>V</black> 11 12 afterthought(s) <black>appendix</black> reference(s) example(s) <black>resource(s)</black> _ </div> <hr>

(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author. </div> <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script> <script type="text/javascript"> _uacct = "UA-2780434-1"; urchinTracker(); </script> </body> </html> <hr> <hr> <table cellpadding=10> <tr> <td> <address> Hush Online Technology </address> hush@cs.vu.nl <br>10/19/08 </td><td> </td> <td></td><td></td><td></td><td></td><td></td><td></td><td></td> <td> </td> </tr> </table>