The DejaVU Framework --
hush 3.1
-
[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>