The DejaVU Framework -- hush 3.1

include: professional-program-11-MethodTemplatesNonType-Grid.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 WIDTH = 10, int HEIGHT = 10>
<h4 align=right text=red> Grid</h4><hr>
  class Grid
  {
  public:

  // Writing a copy constructor (even a templatized one)
  // prevents the compiler from generating a default constructor
  Grid() {}

  template 
  Grid(const Grid& src);

  template 
  Grid& operator=(const Grid& rhs);

  void setElementAt(int x, int y, const T& inElem);
  T& getElementAt(int x, int y);
  const T& getElementAt(int x, int y) const;
  int getHeight() const { return HEIGHT; }
  int getWidth() const { return WIDTH; }

 protected:
  template 
  void copyFrom(const Grid& src);

  T mCells[WIDTH][HEIGHT];
};
<hr>


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]);
}

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

template 
template 
Grid& Grid::operator=(
    const Grid& rhs)
{
  // no need to check for self-assignment because this version of
  // assignment is never called when T and E are the same

  // No need to free any memory first
  copyFrom(rhs);
  return (*this);
}

template 
  template 
  void Grid::copyFrom(
    const Grid& src)
  {
    int i, j;

  for (i = 0; i < WIDTH; i++) {
    for (j = 0; j < HEIGHT; j++) {
      if (i < WIDTH2 && j < HEIGHT2) {
        mCells[i][j] = src.getElementAt(i, j);
      } else {
        mCells[i][j] = T();
      }
    }

  }
  }
<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>