templateGrid ::Grid(int inWidth, int inHeight) : mWidth(inWidth), mHeight(inHeight) { mCells = new T* [mWidth]; for (int i = 0; i < mWidth; i++) { mCells[i] = new T[mHeight]; } } template const int Grid ::kDefaultWidth; template const int Grid ::kDefaultHeight; template Grid ::Grid(const Grid & src) { copyFrom(src); } template Grid ::~Grid() { // free the old memory for (int i = 0; i < mWidth; i++) { delete [] mCells[i]; } delete [] mCells; } template void Grid ::copyFrom(const Grid & src) { int i, j; mWidth = src.mWidth; mHeight = src.mHeight; mCells = new T* [mWidth]; for (i = 0; i < mWidth; i++) { mCells[i] = new T[mHeight]; } for (i = 0; i < mWidth; i++) { for (j = 0; j < mHeight; j++) { mCells[i][j] = src.mCells[i][j]; } } } template Grid & Grid ::operator=(const Grid & rhs) { // check for self-assignment if (this == &rhs) { return (*this); } // free the old memory for (int i = 0; i < mWidth; i++) { delete [] mCells[i]; } delete [] mCells; // copy the new memory copyFrom(rhs); return (*this); } template void Grid ::setElementAt(int x, int y, const T& inElem) { mCells[x][y] = inElem; } template T& Grid ::getElementAt(int x, int y) { return (mCells[x][y]); } template const T& Grid ::getElementAt(int x, int y) const { return (mCells[x][y]); }
(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>